如果我使用EntityFramework,是否必须在ViewModel中提升PropertyChanged?

时间:2013-02-16 10:44:26

标签: wpf entity-framework mvvm

我想使用MVVM模式开发WPF应用程序,Model是一个实体框架模型。由于entityframwork在每个属性设置器中实现INotifyPropertyChanged并引发PropertyChanged事件,我是否必须在viewmodel属性(模型属性的包装器)中引发此事件?

2 个答案:

答案 0 :(得分:2)

是的,你这样做。

UI组件绑定到您的属性,您的属性使用EF实体对象。因此,您可以捕获实体属性的更改,但是UI现在应该如何更改?答案:您的视图模型实现INotifyPropertyChanged并引发PropertyChanged事件。

答案 1 :(得分:2)

您需要为视图中绑定的所有属性(XAML)引发PropertyChanged事件,否则他们将无法知道何时应该更新。

因此,如果要在视图模型中包装模型属性,则需要引发事件。

但是,您可以直接绑定到模型属性:

<TextBox Text="{Binding Model.Property}" />

并且当这些属性实现INotifyChanged时,UI将得到通知,因此将更新。因此,您根本不需要包装它们。