所以,我知道如何创建一个TreeView,然后添加TreeViewItems并绑定它们的ItemsSource,它可以很容易地显示我拥有的所有OBJ
,但我遇到的问题是人们想要制作这些项目的组。我如何创建一个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
,那么这就是我被卡住的地方,那么将为所有 x 项目设置TreeViewItem
s ItemsSource
而不是拥有一组TreeViewItem
,然后将各个项目放入正确的TreeViewItem
TreeView结果示例:
如您所见,我想为不同类型设置固定位置,然后将各个项目放在正确的位置。