public event PropertyChangedEventHandler? PropertyChanged;
时间: 2024-12-23 12:19:49 浏览: 10
在.NET框架的C#编程中,`public event PropertyChangedEventHandler PropertyChanged;`是一个声明,用于处理对象属性改变时通知订阅者的机制。这是MVVM(Model-View-ViewModel)架构模式中常用的一种技术,特别是在WPF(Windows Presentation Foundation)应用程序中。
`PropertyChangedEventHandler`是一个委托类型,代表了接收事件的方法,它的签名通常是 `(object sender, PropertyChangedEventArgs e)`,其中 `sender` 是发出事件的对象,`PropertyChangedEventArgs` 是事件数据,包含被改变的属性名。
当你在一个类中定义这样一个公开事件,意味着你可以在这个类的属性发生变化时,触发这个事件。外部的观察者(通常是视图层的视图或者VM)订阅这个事件,当属性值变化时,就会收到通知,并可以根据需要更新UI或其他依赖状态。
例如:
```csharp
private string _name;
public string Name
{
get => _name;
set
{
if (_name != value)
{
_name = value;
OnPropertyChanged("Name");
}
}
}
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
```
这里,当`_name`属性更改时,会调用`OnPropertyChanged`方法,进而引发`PropertyChanged`事件,所有订阅该事件的地方都会接收到通知并响应。
阅读全文