wpf INotifyPropertyChanged 使用
时间: 2023-07-22 10:59:24 浏览: 107
当在 WPF 中实现数据绑定时,通常会使用到 `INotifyPropertyChanged` 接口来通知视图(UI)更新数据。
首先,在你的数据模型(ViewModel)中实现 `INotifyPropertyChanged` 接口。这可以通过在类声明中添加 `: INotifyPropertyChanged` 来完成,并实现 `PropertyChanged` 事件和 `OnPropertyChanged` 方法。例如:
```csharp
public class MyViewModel : INotifyPropertyChanged
{
private string myProperty;
public string MyProperty
{
get { return myProperty; }
set
{
if (myProperty != value)
{
myProperty = value;
OnPropertyChanged(nameof(MyProperty));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
```
然后,在 XAML 中将你的 UI 控件与 ViewModel 中的属性进行绑定,使用 `{Binding}` 语法,并设置合适的 `Mode` 和 `UpdateSourceTrigger`。例如:
```xml
<TextBox Text="{Binding MyProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
```
在这个示例中,`TextBox` 的 `Text` 属性与 ViewModel 中的 `MyProperty` 属性进行双向绑定,并且在每次属性值发生变化时立即更新源数据。
当你在 ViewModel 中修改 `MyProperty` 的值时,`OnPropertyChanged` 方法会触发 `PropertyChanged` 事件,通知绑定的 UI 控件更新显示。
这样,当 `MyProperty` 的值发生变化时,UI 控件会立即显示最新的值。
希望这能帮助到你!如果有任何进一步的问题,请随时提问。
阅读全文