我阅读了很多文章,发现许多人在ViewModel中也使用了INotifyPropertyChanged。所以,我对INotifyPropertyChanged在哪里使用感到困惑。
答案 0 :(得分:0)
一种流行的方法是使用一个实现InotifyPropertyChanged接口的基类,然后在View Model中继承这个基类。
示例:
public class NotifyPropertyBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
然后在视图模型中继承基类:
class MainViewModel : NotifyPropertyBase
最后,在视图模型的属性setter中引发OnPropertyChanged事件,并将属性名称字符串作为参数传递:
private string _name;
public string Name
{
get { return _name; }
set
{
_name= value;
OnPropertyChanged("Name");
}
}
现在你的UI应该在运行时更新,前提是在Xaml中正确声明了绑定。