我想使用MVVM模式开发WPF应用程序,Model是一个实体框架模型。由于entityframwork在每个属性设置器中实现INotifyPropertyChanged
并引发PropertyChanged
事件,我是否必须在viewmodel属性(模型属性的包装器)中引发此事件?
答案 0 :(得分:2)
是的,你这样做。
UI组件绑定到您的属性,您的属性使用EF实体对象。因此,您可以捕获实体属性的更改,但是UI现在应该如何更改?答案:您的视图模型实现INotifyPropertyChanged
并引发PropertyChanged
事件。
答案 1 :(得分:2)
您需要为视图中绑定的所有属性(XAML)引发PropertyChanged
事件,否则他们将无法知道何时应该更新。
因此,如果要在视图模型中包装模型属性,则需要引发事件。
但是,您可以直接绑定到模型属性:
<TextBox Text="{Binding Model.Property}" />
并且当这些属性实现INotifyChanged
时,UI将得到通知,因此将更新。因此,您根本不需要包装它们。