2011-03-23 93 views

回答

5

簡單的解決辦法我能想到的是

foreach (DataGridColumn column in DataGridView.Columns) 
{ 
    column.SortDirection = null; 
} 
7

我碰到這個問題就來了,而試圖找出如何從電網完全清除排序。感謝[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; 
           }; 
          } 
+1

這是完整的解決方案。第一個答案只是刪除了排序,而不是標題中的箭頭。 – alexandrudicu 2013-10-22 19:44:04

+0

不幸的是,如果你排序,它使用一個轉換器來顯示漂亮的數據(例如,在一列你有一個枚舉並使用一個轉換器來顯示別的東西)列以上解決方案的工作。在這種情況下,SortDescriptions.Count始終保持爲0.當您嘗試重置排序時,什麼都不會發生。 – alexandrudicu 2015-08-21 15:05:00

+0

這是因爲你在這裏弄亂了源代碼,而不是實際的顯示值。試試DataGrid.Items.SortDescriptions。這就是實際值。將它與DeferRefresh一起使用以獲得最佳性能。 – MarqueIV 2015-12-07 22:45:54