WPF TreeView ItemTemplateSelector не работает

У меня есть TreeView и две HierachicalDataTemplates: одна с DataType="{x:Type local:Department}" x:Key="D"и один с DataType="{x:Type local:Employee}" x:Key="E"

если я опускаю ключи x: он работает (потому что шаблоны выбираются автоматически), но если я использую ItemTemplateSelector, я могу войти в селектор и увидеть, что возвращается правильный HierarchicalDataTemplate, но содержимое не отображается,

XAML:

<Window.Resources>
  <local:MyItemSelector x:Key="sel"/>
</Window.Resources>

<TreeView ItemsSource={Binding Data}" ItemTemplateSelector="{StaticResource sel}"/>

C#:

class MyItemSelector : DataTemplateSelector {
  public override DataTemplate SelectTemplate(object item, DependencyObject container) {
    var cntrl = container as Control;
    if (cntrl == null) return null;

    if (item is Department)
      return cntrl.FindResource("D") as HierarchicalDataTemplate;
    if (item is Employee)
      return cntrl.FindResource("E") as HierarchicalDataTemplate;

    return null;
  }
}

есть идеи?

0 ответов

Другие вопросы по тегам