我正在 WPF 数据网格中实现分组。我想对分组的项目进行排序。例如,datagrid 有四列(empno、name、dept、address)。我正在按部门列分组。当我单击 dept 列标题时,我想对分组的项目进行排序。
这里我使用 ListCollectionView 对后面代码中的项目进行分组。
public ListCollectionView collection;
collection = new ListCollectionView(obj.empData);
collection.GroupDescriptions.Add(new PropertyGroupDescription("Country"));
dgData.Items.SortDescriptions.Add
(new System.ComponentModel.SortDescription
("Country"
,System.ComponentModel.ListSortDirection.Descending
)
);
dgData.Items.SortDescriptions.Add
(new System.ComponentModel.SortDescription
("Contact"
, System.ComponentModel.ListSortDirection.Descending
)
);
dgData.ItemsSource = collection;
private void dgData_Sorting
(object sender, Microsoft.Windows.Controls.DataGridSortingEventArgs e)
{
if (e.Column.SortDirection.ToString() == "Ascending")
{
//dgData.Items.SortDescriptions.Clear();
collection.Refresh();
collection = new ListCollectionView(obj.empData);
collection.GroupDescriptions.Add(new PropertyGroupDescription("Country"));
dgData.Items.SortDescriptions.Add
( new System.ComponentModel.SortDescription
("Country"
, System.ComponentModel.ListSortDirection.Descending
)
);
dgData.ItemsSource = collection;
}
}
更改排序顺序后,它不会反映在 UI 中。请让我知道实现这一点的正确方法。