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具有类型ControlTemplateTemplate。它也接受类型DataTemplateContentTemplateContentTemplateSelector,预计选择DataTemplate。在你的情况下,因为Template="{StaticResource ClassicDataTemplate}"正在工作,我怀疑你创建了ControlTemplate而不是DataTemplate。您需要工作ContentTemplate="{StaticResource ClassicDataTemplate}"才能转移到选择器。