2011-03-28 99 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