1

所以,我知道如何创建一个 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>

但这是我卡住的地方,如果我ItemTemplateTreeViewItems 设置 s 那么将为TreeViewItem所有x项设置 sItemsSource而不是一组TreeViewItems 然后将各个项目放入正确的 TreeViewItem

TreeView 结果示例:

  • 数据仓库 <-- 这将有整个库存
    • 平台
      • 固定设备 (X)
        • 固定装置A
        • 固定装置 B
      • 移动设备 (X)
        • 移动设备 A
        • 移动设备 B
  • 公共 <-- 此目录是公共保存创建的用户选择设备的集合
    • MyCollectionA <-- 持有“A”设备(集合 A 中的所有设备都在单个列表中
      • 固定设备 (1)
        • 固定装置A
      • 移动设备 (1)
        • 移动设备 A
    • 我的收藏B
      • 固定设备 (1)
        • 固定装置 B
      • 移动设备 (1)
        • 移动设备 B

如您所见,我希望为不同类型设置固定位置,然后将各个项目放置在正确的位置。

4

0 回答 0