Silverlight中的InotifyProperty更改问题

Silverlight中的InotifyProperty更改问题,silverlight,mvvm,view,viewmodel,inotifypropertychanged,Silverlight,Mvvm,View,Viewmodel,Inotifypropertychanged,我正在处理MVVM,对它不太熟悉,我想知道在哪里实现INotifyPropertyChanged 我在视图模型中实现了它(据我的理解,这是正确的)我需要修改视图中检索到的数据,一旦数据被修改,将其保存在属性中,一旦视图中的属性被分配/更改,我希望组合框选择itemsource,它将是已更改的属性,并保存修改后的数据 在这种情况下我该怎么办?我是否应该在视图中实现INotifyPropertyChanged,并使用: PropertyChanged += new PropertyChangedEv

我正在处理MVVM,对它不太熟悉,我想知道在哪里实现
INotifyPropertyChanged

我在视图模型中实现了它(据我的理解,这是正确的)我需要修改视图中检索到的数据,一旦数据被修改,将其保存在属性中,一旦视图中的属性被分配/更改,我希望组合框选择itemsource,它将是已更改的属性,并保存修改后的数据

在这种情况下我该怎么办?我是否应该在视图中实现INotifyPropertyChanged,并使用:

PropertyChanged += new PropertyChangedEventHandler(PropertyChanged_implimentation); ?

我该怎么办?

通常,您会在视图模型上实现
INotifyPropertyChanged
。如果需要通知任何使用者其属性更改(例如视图模型),也可以选择在模型上实现它

您通常不会在视图上实现
INotifyPropertyChanged
,因为您会使用XAML绑定在视图和底层视图模型之间进行通信

每当视图模型中的属性值发生更改时,
INPC
需要通知视图更新自身。每当视图中的控件值发生更改时,绑定引擎将更新视图模型中的绑定属性值


可以找到MVVM的一个很好的介绍,我也强烈建议对任何类型的严肃应用程序使用。我们在“ViewModelBase”类中实现INotifyPropertyChanged和助手方法SendPropertyChanged(string propertyName),并从中继承所有ViewModels。避免了大量繁琐的重复。是的,这很有用。如果使用Caliburn.Micro等MVVM框架,它将提供一个实现了INPC的视图模型基类。还有一个用于调用PropertyChanged事件的助手方法,该事件采用lambda表达式,因此您的代码库不需要充满神奇的字符串。