2011-03-28 146 views
0

我有一個視圖模型具有作爲其屬性之一的EF對象。該視圖有幾個文本框通過Text="{Binding Path=MyEFTable.Column1}"連接到該屬性。我正在使用MVVM Light工具箱,所以我的視圖模型繼承了ViewModelBase,隨後每個屬性在更改時調用RaisePropertyChanged()EF對象屬性更改 - MVVM

我注意到,不過MyEFTable.Column1的變化沒有在視圖模型中引起任何改變。我認爲EF對象跟蹤任何更改,所以我認爲更改EF對象中的列值會導致EF對象本身發生更改。它是否不再跟蹤更改,因爲我基本上是將查詢結果複製到新的MyEFTable對象中?

回答

0

您的可綁定對象是否實現INotifyPropertyChanged或它的容器,如ObservableCollection? 您是否正在舉辦活動?

使用視圖模型僅僅是開始。首先應該檢查是否在編輯發生後更新Column1屬性。如果是TextBox,UpdateSourceTrigger的默認值是LostFocus。也許你可以嘗試將其更改爲PropertyChanged。 如果您的MyEFTable.Column1中的值已更新,您就完成了。如果不是,再次使用INotifyPropertyChange。

添加更多信息,也許問題會更清楚。

HTH

+0

如果可綁定對象是EF實體,是不是已經實現了INotifyPropertyChanged?我做了一些測試,發現對象的屬性發生了變化,所以我現在真正需要做的就是找出將它們保存回數據庫的方法。我希望避免查看事件觸發器,但我想這可能是最簡單的方法。 – Marc 2011-03-28 17:44:16

+0

我不是他們實現INPC,但如果您的可綁定對象中的屬性,你有大部分的問題解決了:) – Marcote 2011-03-28 17:53:21