2012-03-13 129 views
0

我已將WPF DataGrid綁定到可觀察的視圖集合,其中每個視圖模型都代表DataGrid中的每一行。視圖模型處理BeginEditCellEditEnding事件。更改CellEditEnding事件中的DataGrid內容

在其中一個場景中,我想更改CellEditEnding事件中可觀察集合的內容。但是,我不能這樣做,因爲DataGrid仍處於編輯模式,如果我嘗試添加/刪除可觀察集合中的項目,則會拋出異常並導致我的應用程序崩潰。

有什麼建議嗎?

回答

0

調度它請。

CellEditEnding處理程序中使用Dispatcher.BeginInvoke()方法調用您的代碼。

另外你說

視圖模型處理BeginEdit和CellEditEnding事件。

如果您使用的是純MVVM,那麼這是禁止的。 MVVM通過Delegate/Relay Commands實現事件。

+0

我會嘗試使用調度程序。當數據網格BeginEdit和CellEditEnding事件引發時,我使用附加在數據網格上的行爲來調用視圖模型上的BeginEdit()和EndEdit()。 – Rishabh 2012-03-13 06:06:41

相關問題