在我的項目中,我有默認的WPF DataGrid
ItemsSource
綁定到來自ViewModel的業務對象ObservableCollection
。這個集合經常更新(可能會添加,刪除和更新項目,所有對象都執行INotifyPropertyChanged
),並且一切正常。WPF數據網格排序拋出異常項目添加
允許用戶通過單擊列標題更改DataGrid
中的排序。這部分工作也一樣(幾乎總是)。
當兩個事件同時發生(集合修改和dataGrid排序)和拋出異常時,會出現這種情況,指出'NewItem'或'EditItem'正在進行時'Sorting'不能執行 (不是確切的消息,原始消息不是英文,我找不到英文版)。
此外,我們無法在可調試環境中重現問題,但我們有崩潰報告。
我明白問題的根源是什麼,什麼是錯誤的。但我仍然無法弄清楚我應該怎樣做才能解決這個問題。我無法手動提交CollectionView
更改和/或延遲排序,因爲它位於DataGrid
之內。我無法控制用戶排序啓用,因爲它會給用戶造成不便。我甚至無法嘗試捕捉這個異常,因爲拋出的動作來自Windows消息抽取(用戶操作)並直接進入框架代碼。
我應該在ViewModel中創建CollectionView
,控制它並將數據網格綁定到它,但是DataGrid的內部視圖仍然沒有問題嗎?也許有一些常見的做法或錯誤,我找不到。
如果需要,我可以提供一些代碼,但一切似乎都很常見和直截了當。
感謝聯此期間允許的。我將嘗試提出的解決方案,但在仍然通過綁定與其進行交互的同時管理內部「CollectionView」的狀態似乎有點不對。稍後會發布另一個結果和直接鏈接的評論 – maiksaray
嗯,解決方案似乎工作。沒有崩潰,但它仍然看起來錯了。將繼續在後臺搜索。 – maiksaray