WPF CollectionViewSource 分组

标签 wpf grouping collectionviewsource

我正在使用 CollectionViewSource 对我的数据进行分组。在我的数据中,我需要对 Property1Property2 进行分组。

唯一的规定是我不想要另一个组的子组。因此,当我按这两个属性进行分组时,我不想将其作为 Property2 的组,因为它是 Property1 组的子组。

我想要这个的原因是因为我需要一个显示以下信息的标题:

标题:

<TextBlock.Text>
  <MultiBinding StringFormat="Property1: {0}, Property2: {1}">
    <Binding Path="Property1"/>
    <Binding Path="Property2"/>
  </MultiBinding>
</TextBlock.Text>

我已经用我的 CollectionViewSource 尝试过此操作,但无法将组和子组“组合”在一起:

<CollectionViewSource x:Key="myKey" Source="{Binding myDataSource}">
  <CollectionViewSource.GroupDescriptions>
    <PropertyGroupDescription PropertyName="Property1" />
    <PropertyGroupDescription PropertyName="Property2" />
  </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

是否可以将两个属性组合在一起?像下面这样吗?

<CollectionViewSource x:Key="myKey" Source="{Binding myDataSource}">
  <CollectionViewSource.GroupDescriptions>
    <PropertyGroupDescription PropertyName="Property1,Property2" />
  </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

最佳答案

实际上,您还可以在转换器上使用一些技巧,而不是在对象中创建另一个新属性。点('.')将整个对象传递到转换器中。因此,您可以在那里执行任何逻辑算法,而不是在原始对象中创建新属性。

<CollectionViewSource x:Key="myKey" Source="{Binding myDataSource}">
    <CollectionViewSource.GroupDescriptions>
         <PropertyGroupDescription PropertyName="." 
                     Converter="{StaticResource Property1AndProperty2}" />
     </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

在你的转换器上是这样的:

public class WidthAndHeightMixer : IValueConverter
{
      public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
      {
            if (value is YourObject)
            {
                  return (value as YourObject).Property1 + (value as Inventory).Property2
            }
      }
      ......

关于WPF CollectionViewSource 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3894195/

相关文章:

wpf - 未找到部署的应用程序的 MEF 部件,但在 Debug模式下找到

wpf - 将列表框选择的项目信息传递给用户控件(WPF)

WPF 列表框分组

c# - CollectionViewSource 使用问题

.net - CollectionViewSource 当前项

c# - WPF 交互命令引用转换器的本地静态资源

wpf - 将鼠标悬停在 WPF 中包含斜杠的单元格上时向工具提示添加文本

php - 对一列的数组数据进行分组并对另一列的数据求和

c# - Linq:如何按最大项目数分组

c# - 显示 ICollectionView 的前 X 项