
遇到的问题:
一、DataGrid 默认点击列标题,是对已取到的数据排序。
二、如果给 DataGrid 重新指定数据源(如:我点击搜索按钮或者操作底部的翻页),列标题“保证时间”上的排序箭头就会消失。
解决方法:
先理解下两个属性
Column.SortDirection,可以简单理解成列标题的排序箭头(向上或向下)
Column.SortMemberPath,可以简单理解成这个列所绑定的某个字段名
然后看源码
public partial class Window1 : Window
{
string _columnHeader = ""; //用来记住已点击列标题的 Column.Header
ListSortDirection? _columnListSortDirection = null; //用来记住已点击列标题的 Column.SortDirection
string _columnSortMemberPath = ""; //用来记住已点击列标题的 Column.SortMemberPath
public Window1()
{
InitializeComponent();
dataGrid1.Sorting += DataGrid1_Sorting;
button1.Click += Button1_Click;
//这里最好设置下默认的排序列
dataGrid1.Columns[0].SortDirection = ListSortDirection.Descending;
}
//列标题点击事件处理器
private void DataGrid1_Sorting

文章介绍了在WPF中使用DataGrid时遇到的排序箭头消失问题,以及如何通过记录Column.SortDirection和SortMemberPath来解决。当DataGrid数据源改变时,通过记住之前排序的列标题和方向,重新设置列的排序状态,确保排序箭头仍然显示正确。

1万+

被折叠的 条评论
为什么被折叠?



