我设置了一个包含两个或多个集合的CompositeCollection
,如下所示(简化):
<Grid.Resources>
<CollectionViewSource x:Key="CollectionA" Source="{Binding CollectionA}" />
<CollectionViewSource x:Key="CollectionB" Source="{Binding CollectionB}" />
<CompositeCollection x:Key="FullCollection">
<CollectionContainer Collection="{Binding Source={StaticResource CollectionA}}" />
<CollectionContainer Collection="{Binding Source={StaticResource CollectionB}}" />
</CompositeCollection>
</Grid.Resources>
...
<ListView ItemsSource="{StaticResource FullCollection}">
<ListView.View>
<GridView>
然后在
GridView
内显示一些列。但是,我似乎无法将GroupDescriptions
添加到CompositeCollection
中,只能添加单个CollectionViewSource
元素。我要做的是按集合本身分组,以便
ListView
有一个 header ,然后是第一个集合的内容,另一个 header ,然后是第二个集合的内容,依此类推。我是不是在错误的树上吠叫试图以这种方式对它们进行分组?
最佳答案
我有同样的问题,但下拉列表框。解决方案是在集合之间简单地添加一些禁用项,例如适应您的问题可能是这样的:
<Grid.Resources>
<CollectionViewSource x:Key="CollectionA" Source="{Binding CollectionA}" />
<CollectionViewSource x:Key="CollectionB" Source="{Binding CollectionB}" />
<CompositeCollection x:Key="FullCollection">
<ListViewItem IsEnabled="False">Collection A:</ListViewItem>
<CollectionContainer Collection="{Binding Source={StaticResource CollectionA}}" />
<ListViewItem IsEnabled="False">Collection B:</ListViewItem>
<CollectionContainer Collection="{Binding Source={StaticResource CollectionB}}" />
</CompositeCollection>
</Grid.Resources>
关于c# - WPF CompositeCollection按每个 Collection View 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47673099/