WPF TreeView ItemTemplateSelector无法正常工作

时间:2013-02-19 12:45:53

标签: wpf treeview hierarchicaldatatemplate 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 个答案:

没有答案