0

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

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

有没有办法以某种方式确定它们的范围,以便第一个 TreeView 专门使用第一组,而第二个 TreeView 只使用第二组?

(请注意,由于事先不知道对象树结构,因此我必须使用“DataType”方法(无论如何我更喜欢),并且不能使用静态 HierarchicalDataTemplate。)

4

1 回答 1

1

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

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

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

于 2012-11-09T16:48:43.607 回答