我需要在Tree View中显示来自两个不同来源的项目。我怎样才能做到这一点?
详细说明: 物品来源A:此物品来源将有一个标题,n个孩子,每个孩子最多可以有32个子孩子。
项目来源B:此项目来源将有一个标题和n个孩子。
我需要支持子项和子项的上下文菜单操作。
xaml代码应该是什么样的,我的类的结构应该是什么?
我当前的结构只有一个ItemSource,绑定代码看起来像这个
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Slash}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate DataType="{x:Type dt:Slash}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding FullName}"/>
</StackPanel>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
答案 0 :(得分:0)
您可以查看我在this topic中发布的答案 如果您有任何疑问,请询问;)
答案 1 :(得分:0)
您需要做的就是将两个集合放入一个'ObservableCollection collection and then
绑定that to the
TreeView.ItemsSource`属性中。
如果由于某种原因,您需要输入集合,那么您仍然有三个选项;要么是子类,要么是两个集合中的两个类型,并使你的新集合成为子类型;或使它们都实现相同的接口并将其用作新集合的类型;或者扩展ObservableCollection
以允许集合接受两种类型的对象,同时仍然在每个输入点检查它们的类型。