【问题标题】:WPF CompositeCollection grouping by each collection viewWPF CompositeCollection 按每个集合视图分组
【发布时间】:2017-12-06 11:21:03
【问题描述】:

我设置了一个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 有一个标题,然后是第一个集合的内容,另一个标题,然后是第二个集合的内容,等等。

我试图以这种方式对它们进行分组是不是在找错树?

【问题讨论】:

  • 没人?丹,您找到任何解决方法了吗?

标签: c# wpf compositecollection


【解决方案1】:

我遇到了同样的问题,但是对于下拉组合框。解决方案是在集合之间简单地放置一些禁用的项目,例如适应你的问题,它会是这样的:

<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>

【讨论】:

  • 您不能对动态集合进行分组。
  • @JokeHuang 它对我有用,你是什么意思?
  • 你的组名是静态的,运行时不能改变,运行时不能按不同属性分组。
猜你喜欢
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多