2015-09-17 51 views
1

在我的項目中,我有默認的WPF DataGridItemsSource綁定到來自ViewModel的業務對象ObservableCollection。這個集合經常更新(可能會添加,刪除和更新項目,所有對象都執行INotifyPropertyChanged),並且一切正常。WPF數據網格排序拋出異常項目添加

允許用戶通過單擊列標題更改DataGrid中的排序。這部分工作也一樣(幾乎總是)。

當兩個事件同時發生(集合修改和dataGrid排序)和拋出異常時,會出現這種情況,指出'NewItem'或'EditItem'正在進行時'Sorting'不能執行 (不是確切的消息,原始消息不是英文,我找不到英文版)。

此外,我們無法在可調試環境中重現問題,但我們有崩潰報告。

我明白問題的根源是什麼,什麼是錯誤的。但我仍然無法弄清楚我應該怎樣做才能解決這個問題。我無法手動提交CollectionView更改和/或延遲排序,因爲它位於DataGrid之內。我無法控制用戶排序啓用,因爲它會給用戶造成不便。我甚至無法嘗試捕捉這個異常,因爲拋出的動作來自Windows消息抽取(用戶操作)並直接進入框架代碼。

我應該在ViewModel中創建CollectionView,控制它並將數據網格綁定到它,但是DataGrid的內部視圖仍然沒有問題嗎?也許有一些常見的做法或錯誤,我找不到。

如果需要,我可以提供一些代碼,但一切似乎都很常見和直截了當。

回答

1

本博客文章就您的問題提供了一些建議。

「排序」不是一個AddNew或EditItem交易」 http://tliangnet.blogspot.com/2015/08/sorting-is-not-allowed-during-addnew-or.html

+0

感謝聯此期間允許的。我將嘗試提出的解決方案,但在仍然通過綁定與其進行交互的同時管理內部「CollectionView」的狀態似乎有點不對。稍後會發布另一個結果和直接鏈接的評論 – maiksaray

+0

嗯,解決方案似乎工作。沒有崩潰,但它仍然看起來錯了。將繼續在後臺搜索。 – maiksaray