WPF 框架是否会自动将INotifyPropertyChanged
派生类型更新获取到 UI 中的Bindings
?
还是我必须手动完成?
如果正确实现INotifyPropertyChanged
,它会自动实现。
是的,它是 Semi 手动,
string _tText;
public string Text
{
get { return _tText; }
set
{
_tText = value;
OnPropertyChanged("Text");
}
}
在这里,一旦属性设置为某个值,属性就会更改显示调用。 OnPropertyChanged("Text");
半手动:-)
当你实现"INotifyPropertyChanged"时,你将实现这些方法(通常实现相同)
#region INotifyPropertyChanged
protected void RaisePropertyChanged(string propertyName)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null) { PropertyChanged(this, e); }
}
public event PropertyChangedEventHandler PropertyChanged;
#endregion
之后,当您的某个属性发生更改时,您需要调用"RaisePropertyChanged",其中包含更改的属性的名称。 通常在该属性的二传手中