c# - WPF CompositeCollection按每个 Collection View 分组

标签 c# wpf compositecollection

我设置了一个包含两个或多个集合的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/

相关文章:

wpf - 如何删除正在使用Datavisualization工具包dll的Wpf图表中的点

wpf - 为什么 CompositeCollection 不可 Freezable?

c# - 将 Canvas 转换为图像并保存到光盘

c# - 在 asp 表单中 Response.Write 的简写是什么?

c# - 如何使用 .NET Compact Framework 隐藏窗体

c# - 托盘图标动画

c# - 使用 C# 和 linq 查询 mongo 中的嵌套属性

c# - 在 WPF (MVVM) 中使模型静态化是一种好习惯吗?

c# - 使用compositecollection而不是observablecollection<interface>有什么优点?