【问题标题】:WPF DataGrid - Group Elements in code-behind C#WPF DataGrid - 代码隐藏 C# 中的组元素
【发布时间】:2010-11-20 14:43:10
【问题描述】:

我一直试图想办法在代码隐藏中对 DataGrid 中的项目进行分组。 我的 DataGrid 填充了自定义对象列表集合的代码隐藏,我想要将这些对象拆分为组。谢谢

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案1】:

    您确实需要使用 CollectionView,但 CollectionView 基本类型不支持分组。

    要使分组在代码中起作用,您需要使用实现分组的派生 CollectionView 类型之一,例如:

    • ListCollectionView
    • BindingListCollectionView

    你可以这样使用它:

     ListCollectionView lcv = new ListCollectionView(myCollection);
     lcv.GroupDescriptions.Add(new PropertyGroupDescription("PropertyNameToGroupBy"));
     MyDataGrid.ItemsSource = lcv;
    

    通常当你直接给ItemSource设置一个集合时,WPF会自动为你创建一个CollectionView。

    如果您想了解更多信息,B​​ea Stollnitz 就CollectionViews on her blog 谈了很多。

    【讨论】:

      【解决方案2】:

      您可以将DataGrid 绑定到从您的对象列表中创建的CollectionViewCollectionView 支持分组。这不是真正的代码隐藏解决方案,但非常易于使用。

      【讨论】:

      • 从 xaml 的角度来看,我知道如何做到这一点,在我的情况下,这将不起作用,因为我正在构建一个扩展为 DataGrid 类的自定义控件,以便设置和组织数据和功能必填。
      • DataGrid 使用 ICollectionViewCollectionView 实现此接口。或许你可以从DataGridICollectionView的互动中得到一些启发?您可以通过在您的对象集合上实现自己的ICollectionView 来实现您的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 2012-03-19
      • 2011-08-13
      相关资源
      最近更新 更多