具有不同TreeView的DataType属性的不同HierarchicalDataTemplates集

时间:2012-11-09 16:43:24

标签: wpf treeview hierarchicaldatatemplate

我有一个WPF TreeView绑定到混合类型的对象层次结构。 因此,我使用HierarchicalDataTemplates与“DataType”属性 指定用于每种类型的模板,工作正常(TreeView 自动为每种对象类型捕获正确的一个。)

现在我遇到的问题是我有第二个TreeView(在同一个XAML文件中) 这将填充相同类型的对象。但是这次 它们必须以另一种方式显示,所以我需要另一套 HierarchicalDateTemplates。同样,我会使用“DataType”属性。 但是,如果我把它们放在同一个XAML文件中,当然我会收到一个错误(我不能 为同一类型定义两个模板。)

有没有办法以某种方式对它们进行范围调整,以便第一组专用于 第一个TreeView,第二个只有第二个TreeView?

(注意,因为事先不知道对象树结构,所以我有 使用“DataType”方法(我更喜欢)并且不能使用 一个静态的HierarchicalDataTemplate。)

1 个答案:

答案 0 :(得分:1)

将第一个DataTemplate集放在第一个TreeView的资源中,第二个放在第二个TreeView的资源中,它应该正常工作。

<TreeView>
    <TreeView.Resources>
        <!-- put your data templates here -->
    </TreeView.Resources>
</TreeView>

有关详细信息,请参阅FrameworkElement.Resources