所以,我知道如何创建一个 TreeView,然后添加 TreeViewItems 并绑定它们的 ItemsSource,这样可以很容易地显示OBJ
我拥有的所有 s,但我遇到的问题是当人们想要对这些项目进行分组时。我将如何制作一个 DataTemplate ,它可以让我做与下面一样Data Warehouse
的操作,但显示为用户选择的项目的集合?
<TreeView.Items>
<TreeViewItem Header="Data Warehouse">
<TreeViewItem.Items>
<TreeViewItem Header="Platforms">
<TreeViewItem.Items>
<TreeViewItem ItemsSource="{Binding OBJS, Converter={StaticResource COBJSourceConverter}, ConverterParameter=Fixed}">
<TreeViewItem.Header>
<TextBlock Text="{Binding RelativeSource={RelativeSource Self},
Path=Parent.Items.Count,
StringFormat=Fixed Devices ({0})}">
</TextBlock>
</TreeViewItem.Header>
</TreeViewItem>
<TreeViewItem ItemsSource="{Binding OBJS, Converter={StaticResource COBJSourceConverter}, ConverterParameter=Mobile}">
<TreeViewItem.Header>
<TextBlock Text="{Binding RelativeSource={RelativeSource Self},
Path=Parent.Items.Count,
StringFormat=Mobile Devices ({0})}">
</TextBlock>
</TreeViewItem.Header>
</TreeViewItem>
</TreeViewItem.Items>
</TreeViewItem>
<TreeViewItem ItemsSource="{Binding OBJS, Converter={StaticResource CollectionSourceConverter}, ConverterParameter=Public}" Header="Public" />
<TreeViewItem ItemsSource="{Binding OBJS, Converter={StaticResource CollectionSourceConverter}, ConverterParameter=Shared}" Header="Shared" />
<TreeViewItem ItemsSource="{Binding OBJS, Converter={StaticResource CollectionSourceConverter}, ConverterParameter=Private}" Header="Private" />
</TreeView.Items>
所以,到目前为止,我有以下几点:
<HierarchicalDataTemplate DataType="{x:Type EntityType:COLLECTIONS}">
<TextBlock Text="{Binding COLLECTIONNAME}" />
</HierarchicalDataTemplate>
但这是我卡住的地方,如果我ItemTemplate
用TreeViewItem
s 设置 s 那么将为TreeViewItem
所有x项设置 sItemsSource
而不是一组TreeViewItem
s 然后将各个项目放入正确的 TreeViewItem
TreeView 结果示例:
- 数据仓库 <-- 这将有整个库存
- 平台
- 固定设备 (X)
- 固定装置A
- 固定装置 B
- 移动设备 (X)
- 移动设备 A
- 移动设备 B
- 固定设备 (X)
- 平台
- 公共 <-- 此目录是公共保存创建的用户选择设备的集合
- MyCollectionA <-- 持有“A”设备(集合 A 中的所有设备都在单个列表中
- 固定设备 (1)
- 固定装置A
- 移动设备 (1)
- 移动设备 A
- 固定设备 (1)
- 我的收藏B
- 固定设备 (1)
- 固定装置 B
- 移动设备 (1)
- 移动设备 B
- 固定设备 (1)
- MyCollectionA <-- 持有“A”设备(集合 A 中的所有设备都在单个列表中
如您所见,我希望为不同类型设置固定位置,然后将各个项目放置在正确的位置。