清除排序描述后如何删除wpf网格排序箭头
Posted
技术标签:
【中文标题】清除排序描述后如何删除wpf网格排序箭头【英文标题】:How to remove wpf grid sort arrow after clearing sort descriptions 【发布时间】:2011-07-21 02:09:19 【问题描述】:我单击网格标题对列进行排序,然后单击“重置”按钮通过其集合视图清除排序描述。但是排序箭头图标仍然存在于标题中。怎么去掉?
【问题讨论】:
【参考方案1】:我能想到的简单解决方案是
foreach (DataGridColumn column in DataGridView.Columns)
column.SortDirection = null;
【讨论】:
【参考方案2】:我在尝试弄清楚如何完全从网格中清除排序时遇到了这个问题。感谢 [krishnaaditya] 回答如何从标题中清除排序箭头。
using System.Windows.Data;
using System.ComponentModel;
ICollectionView view = CollectionViewSource.GetDefaultView(resultsGrid.ItemsSource);
if (view != null && view.SortDescriptions.Count > 0)
view.SortDescriptions.Clear();
foreach (DataGridColumn column in resultsGrid.Columns)
column.SortDirection = null;
【讨论】:
这是完整的解决方案。第一个答案只删除了排序,但没有删除标题中的箭头。 不幸的是,如果您对使用转换器显示漂亮数据的列进行排序(例如,在一列中您有一个枚举,而您使用转换器来显示其他内容),则上述解决方案都不起作用.在这种情况下,SortDescriptions.Count 始终保持为 0。当您尝试重置排序时,没有任何反应。 这是因为您在这里弄乱了源,而不是实际显示的值。试试 DataGrid.Items.SortDescriptions。这就是实际值所在的位置。使用 DeferRefresh 将其包装在使用中以获得最佳性能。以上是关于清除排序描述后如何删除wpf网格排序箭头的主要内容,如果未能解决你的问题,请参考以下文章