c# - WPF 使用重置对 DataGrid 进行排序
问题描述
我的 DataGrid 有自定义排序
if (sortPropertyName == "Ip")
{
IComparer comparer = null;
e.Handled = true;
ListSortDirection direction = (e.Column.SortDirection != ListSortDirection.Ascending) ? ListSortDirection.Ascending : ListSortDirection.Descending;
e.Column.SortDirection = direction;
ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(dataGrid.ItemsSource);
comparer = new SortIPAddress(direction);
lcv.CustomSort = comparer;
}
它运作良好。我有其他列的方法重置排序
if (e.Column.SortDirection.HasValue && e.Column.SortDirection.Value == ListSortDirection.Descending)
{
int index = Helpers.FindSortDescription(dataGrid.Items.SortDescriptions, sortPropertyName);
if (index != -1)
{
e.Column.SortDirection = null;
// remove the sort description
dataGrid.Items.SortDescriptions.RemoveAt(index);
dataGrid.Items.Refresh();
if ((Keyboard.Modifiers & ModifierKeys.Shift) != ModifierKeys.Shift)
{
// clear any other sort descriptions for the multisorting case
dataGrid.Items.SortDescriptions.Clear();
dataGrid.Items.Refresh();
}
// stop the default sort
e.Handled = true;
}
}
我怎样才能像在 Ip 列中那样重置?
我做了:
if (e.Column.SortDirection.HasValue && e.Column.SortDirection.Value == ListSortDirection.Descending)
{
e.Column.SortDirection = null;
}
else
{
ListSortDirection direction = (e.Column.SortDirection != ListSortDirection.Ascending) ? ListSortDirection.Ascending : ListSortDirection.Descending;
e.Column.SortDirection = direction;
comparer = new SortIPAddress(direction);
}
ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(dataGrid.ItemsSource);
lcv.CustomSort = comparer;
排序IP现在重置。但是双重排序shift
是不正确的。怎么修?
解决方案
SortDirection
您可以通过将属性设置为来清除列的排序null
:
e.Column.SortDirection = null;
如果要删除自定义排序,可以将CustomSort
属性设置为null
:
ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(dg.ItemsSource);
lcv.CustomSort = null;
推荐阅读
- api - 在控制台中获取数据但无法在屏幕上看到任何 api 调用数据 React Native
- python - PyQt5 QGridLayout 在删除小部件时崩溃
- android - 如何对此响应使用改造调用?
- c++ - 如何在 Ubuntu 上编译 OpenGL 项目?
- excel - 在运行时和从代码创建时将自定义类添加到用户窗体对象
- ms-access - 过滤列和合并行
- image - 将图片拆分为 6 张图片并删除空格
- c# - MVC 将产品添加到弹出模式购物车而不重定向到空白页面 asp.net mvc
- ios - NSAttributedString 抛出错误“使用未解析的标识符'UIFont'”
- mongodb - Spring boot mongo存储库创建bean时不满足的依赖关系