WPF数据模板选择器

时间:2017-08-03 06:36:39

标签: wpf templates contentcontrol

我有一个数据模板选择器,我用它来选择两个不同的模板。问题是,这些模板包含一个网格作为外部元素等。我所做的是我的UserControl.Resources中的资源控件中有我的模板选择器:

<l:UIDataTemplateSelector x:Key="UISelector"
          ClassicDataTemplate="{StaticResource ClassicDataTemplate}"
          ModernDataTemplate="{StaticResource ModernDataTemplate}" />

然后在此之外,我有我的内容控件,我的模板在控件模板中:

<ContentControl ContentTemplateSelector="{StaticResource UISelector}"></ContentControl>

当我运行我的代码时,这会导致它崩溃,但如果我使用:

<ContentControl Template="{StaticResource ClassicDataTemplate}"></ContentControl> 

要使用一个模板或另一个模板,它的工作原理非常好。是否有一种简单的方法可以让它使用模板选择器来显示它?

1 个答案:

答案 0 :(得分:0)

#menu .nav-tabs>li>a.menu_digital:active>.main-menu-icon, #menu .nav-tabs>li>a.menu_digital.active>.main-menu-icon { background: url(/images/digital_white.svg); } 的{​​{1}}类型为ContentControl。它还接受Template类型ControlTemplateContentTemplate,预计会选择DataTemplate。在您的情况下,由于ContentTemplateSelector正在运行,我怀疑您创建了DataTemplate而不是Template="{StaticResource ClassicDataTemplate}"。您需要有效ControlTemplate才能转移到选择器。