我正在努力让我的datatemplate绑定工作;我明确地将我的DataTemplate绑定到数据类型
<DataTemplate DataType="{x:Type local:ExcelReportVM}">
<local:ExcelReport DoubleClickHandler="{Binding}">
<local:ExcelReport.RowColorConverter>
<local:ReportRowColorConverter/>
</local:ExcelReport.RowColorConverter>
</local:ExcelReport>
</DataTemplate>
但是,我发现即使我的control.DataContext
为ExcelReportVM
,上述DataTemplate
也不会被应用。
然后我read in MSDN那个
如果要将ContentControl绑定到Task对象的集合, ContentControl不会自动使用DataTemplate。这个 是因为ContentControl上的绑定需要更多信息 区分是否要绑定到整个集合或 个别物件。如果您的ContentControl正在跟踪选择 一个ItemsControl类型,你可以设置的Path属性 ContentControl绑定到“/”表示您感兴趣 当前项目。有关示例,请参见如何:绑定到集合和 基于选择的显示信息。否则,您需要指定 通过设置ContentTemplate属性显式地显示DataTemplate。
这个解释听起来非常抽象,我读了几遍之后就不知道它在说什么了。有人愿意用适当的例子来解释它吗?
答案 0 :(得分:1)
如果您将DataTemplate
的{{1}}属性设置或绑定到Content
对象的实例,则会应用隐式ContentControl
:
ExcelReportVM
<ContentControl x:Name="control" />