2009-11-17 82 views
0

我有一個SL DataGrid有兩列。我需要能夠捕捉到任何行的更改並將其保存到撤消堆棧中。我設置了事件RowEditEnded並嘗試添加到撤消堆棧。我遇到的問題是我無法從RowEditEnded獲取新值。如果該列是ComboBox,那麼它將在RowEditEnded拋出之前更新綁定源,但如果我只有一個TextBox,則在數據源更新之前拋出RowEditEnded。Silverlight Datagrid RowEditEnded

有誰知道在RowEditEnded之前強制更新DataBinding源以允許我在列是帶有文本框的模板列時訪問新值的方法嗎?

回答

1

您將需要捕獲您的類的更改,因爲這是更改被存儲的位置。 DataGrid編輯模式是數據網格的狀態,而不是數據網格後面的值。

+0

我最終這樣做了。我發現它不是很乾淨,並且不太喜歡它的工作方式,但由於我無法在RowEditEnded中正確獲取數據,因此這是最佳解決方案。 – Stephan 2009-11-20 15:44:26

+1

我個人認爲這可能是一個更清潔的解決方案。 UI應該跟蹤對數據的更改,View Model或Model應該這樣做。 – Bryant 2009-11-20 18:42:13