WPF数据模板选择器
问题描述:
我有一个数据模板选择器,我用它来选择两个不同的模板。问题是,这些模板包括网格,外部零件等。我所做的就是我有我的模板选择在我的UserControl.Resources我的资源控制:WPF数据模板选择器
<l:UIDataTemplateSelector x:Key="UISelector"
ClassicDataTemplate="{StaticResource ClassicDataTemplate}"
ModernDataTemplate="{StaticResource ModernDataTemplate}" />
然后这个之外,我有我的内容控制,我的模板是控件模板:
<ContentControl ContentTemplateSelector="{StaticResource UISelector}"></ContentControl>
当我运行我的代码,这使得它崩溃,但如果我使用:
<ContentControl Template="{StaticResource ClassicDataTemplate}"></ContentControl>
要使用一个模板或OT她,它工作得很好。有没有简单的方法让它使用模板选择器来显示它?
答
A ContentControl
具有类型ControlTemplate
的Template
。它也接受类型DataTemplate
的ContentTemplate
和ContentTemplateSelector
,预计选择DataTemplate
。在你的情况下,因为Template="{StaticResource ClassicDataTemplate}"
正在工作,我怀疑你创建了ControlTemplate
而不是DataTemplate
。您需要工作ContentTemplate="{StaticResource ClassicDataTemplate}"
才能转移到选择器。