我有幾個datagrid我需要更新的信息。事情是,由於不止一個人同時在系統上工作,所以需要定期刷新數據網格。當我刷新時,我失去了用戶的排序。WPF保持列排序與Datagrid
有沒有辦法保留它?
謝謝
我有幾個datagrid我需要更新的信息。事情是,由於不止一個人同時在系統上工作,所以需要定期刷新數據網格。當我刷新時,我失去了用戶的排序。WPF保持列排序與Datagrid
有沒有辦法保留它?
謝謝
請注意,這是未經測試,但你可以做這樣的事情嗎?
ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(myDataGrid.ItemsSource);
IComparer mySort = lcv.CustomSort; // assumes you've already set it beforehand
... // stuff happens
lcv.CustomSort = mySort;
我仍然在學習WPF自己,但希望這是一些幫助...... -Matt。
只更新綁定集合的內容 - 不要替換集合本身。那麼你不會得到一個新的CollectionView,所以你的排序不會受到影響。
我嘗試過但似乎無法讓它工作。我必須在其他時間檢查 – 2009-11-13 18:24:49
要涵蓋所有基礎,您可能還希望在SortDescriptions中進行復制。這樣,無論選擇何種排序,您都將保留排序順序。相關代碼將如下所示:var sd = lcv.SortDescriptions.ToList(); [...] if(!lcv.SortDescriptions.SequenceEqual(sd){lcv.SortDescriptions.ClearItems(); foreach(d in sd)lcv.SortDescriptions.Add(d);} – 2009-11-10 22:06:04