C# “这是什么意思?”;ContentControl不会自动使用DataTemplate;?

C# “这是什么意思?”;ContentControl不会自动使用DataTemplate;?,c#,wpf,datatemplate,contentcontrol,C#,Wpf,Datatemplate,Contentcontrol,我正在努力让我的数据模板绑定工作;我显式地将我的数据模板绑定到一个数据类型 <DataTemplate DataType="{x:Type local:ExcelReportVM}"> <local:ExcelReport DoubleClickHandler="{Binding}"> <local:ExcelReport.RowColorConverter> <local:ReportRowColorCo

我正在努力让我的数据模板绑定工作;我显式地将我的数据模板绑定到一个数据类型

<DataTemplate DataType="{x:Type local:ExcelReportVM}">
    <local:ExcelReport DoubleClickHandler="{Binding}">
        <local:ExcelReport.RowColorConverter>
            <local:ReportRowColorConverter/>
        </local:ExcelReport.RowColorConverter>
    </local:ExcelReport>
</DataTemplate>

但是,我发现,即使我的
控件.DataContext
ExcelReportVM
,上面的
数据模板
也没有应用

那我就

如果要将ContentControl绑定到任务对象集合, ContentControl不会自动使用DataTemplate。这 是因为ContentControl上的绑定需要更多信息 区分是要绑定到整个集合还是 单个对象。如果ContentControl正在跟踪所选内容 对于ItemsControl类型,可以设置 ContentControl绑定到“/”以表示您对 当前项目。有关示例,请参见如何:绑定到集合并 根据选择显示信息。否则,您需要指定 通过设置ContentTemplate属性来显式创建DataTemplate


这个解释听起来很抽象,读了几遍后我不知道它在说什么。有人想用一个合适的例子来解释吗?

如果您将
ContentControl
Content
属性设置或绑定到
ExcelReportVM
对象的实例,则会应用隐式
DataTemplate

<ContentControl x:Name="control" />

“control”是什么类型的控件?@mm8,如数据模板数据类型ExcelReportVM中定义的,否?您设置了某个“control”的DataContext属性。这是什么?@Graviton,如果存在ExcelReportVM的数据模板,并且视图显示ExcelReportVM对象的ExcelReport控件,则表示已应用该模板。否则,ExcelReportVM将显示为带有“ExcelReportVM”文本的文本块
content.Content = new ExcelReportVM();