2011-07-21 60 views
4

我需要使用MVVM設計模式的wpf數據網格的幫助。如何在使用MVVM更改wpf數據網格的單元格中的值時引發事件?

我有一個綁定到一個ObservableCollection一個datagid。網格中的第一列包含無法編輯的十進制值。第二列包含必須輸入十進制值的文本框。第三列必須顯示第一列中的值與第二列中的值之間的差異。我希望處理observablecollection的Collectionchanged事件將允許met來確定集合中某個項目的某個字段何時發生了更改,但這似乎不起作用。

我也試着處理網格的所選項目的PropertyChanged事件,但不工作或者。

可有人請指示我如何提高在視圖模型的事件,只要在一個文本框「n值在DataGrid DataGridTemplateColumn被改變?那麼如何在第三列的相應行中設置計算值?

+0

做* *中的'ObservableCollection'執行'INotifyPropertyChanged'的項目? – CodingGorilla

+0

你是否也在TextBox的綁定上設置UpdateSourceTrigger? – RMart

+0

嗨。該集合中的項目爲DataGrid以及DataGridTemplateColumn中的文本框實現INotifyPropertyChanged和UpdateSourceTrigger = PropertyChanged。 – user823486

回答

2

你應該嘗試從另一端(i..e從視圖模型)解決它。

你的項目中的ObservableCollection(稱之爲CollectionItem)應執行INotifyPropertyChanged。

,這樣的數據改變都被記錄/爲你改變他們COMMITED你應該調整你的網格(不是重點了/移動)

,然後在你的CollectionItem應儘量基於價值變動刷新值輸入。讓我知道,如果你想更詳細

+0

嗨。該集合中的項目爲DataGrid以及DataGridTemplateColumn中的文本框實現INotifyPropertyChanged和UpdateSourceTrigger = PropertyChanged。 – user823486

+0

數據網格的IEditableObject實現可能會推遲更改通知,直到您從anvarbek指出的行更改焦點爲止。您是否通過失去焦點來驗證變更通知的發生? – Oppositional

+0

嗨。失去焦點不會發生更改通知。 – user823486

相關問題