DataType="{x:Type local:Department}" x:Key="D"
TreeViewと2 つの HierachicalDataTemplates があります。DataType="{x:Type local:Employee}" x:Key="E"
x:keys を省略しても機能しますが (テンプレートは自動的に取得されるため)、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;
}
}
何か案は?