WPF中的INotifyPropertyChanged接口

INotifyPropertyChanged 是一个在 WPF (Windows Presentation Foundation) 和 .NET 中使用的接口,它用于实现数据绑定时的数据更新通知。当实现了 INotifyPropertyChanged 接口的类的属性值发生变化时,这个接口允许对象通知绑定到该对象属性的 UI 元素,以便 UI 元素可以更新其显示的内容。

接口定义

INotifyPropertyChanged 接口定义如下:

cs 复制代码
public interface INotifyPropertyChanged
{
    event PropertyChangedEventHandler PropertyChanged;
}

事件处理

  • PropertyChanged :这是一个事件,当实现类的属性值发生变化时,需要触发这个事件。PropertyChangedEventHandler 是一个委托,它指向一个方法,该方法接收两个参数:发送事件的对象(通常是属性发生变化的对象本身)和一个 PropertyChangedEventArgs 对象,后者包含发生变化的属性的名称。

实现 INotifyPropertyChanged

要实现 INotifyPropertyChanged,你需要在你的类中声明 PropertyChanged 事件,并在属性的 set 访问器中触发这个事件。以下是一个简单的实现示例:

cs 复制代码
public class Person : INotifyPropertyChanged
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set
        {
            if (_name != value)
            {
                _name = value;
                OnPropertyChanged("Name");
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

使用 INotifyPropertyChanged

当你的数据对象实现了 INotifyPropertyChanged 接口后,你可以在 WPF 中使用数据绑定,将 UI 元素绑定到这些对象的属性上。当属性值发生变化时,UI 会自动更新以反映新的值。

XML 复制代码
<TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" />

在这个 XAML 代码中,TextBoxText 属性被绑定到了 Person 对象的 Name 属性上。由于 Name 属性的 set 访问器中触发了 PropertyChanged 事件,所以每当 Name 发生变化时,TextBox 都会更新其显示的内容。

INotifyPropertyChanged 是实现响应式 UI 和数据绑定的关键组件,它确保了 UI 和数据之间的同步更新。

相关推荐
SEO-狼术6 小时前
DevExpress WPF Crack, DevExpress WPF v25.1
wpf
小老鼠爱大米6 小时前
C# WPF - Prism 学习篇:搭建项目(一)
c#·wpf·prism
博睿谷IT99_11 小时前
Hadoop 分布式存储与计算框架详解
wpf
qq_392397122 天前
Redis常用操作
数据库·redis·wpf
三千道应用题2 天前
WPF学习笔记(25)MVVM框架与项目实例
wpf
厦门德仔2 天前
【WPF】WPF(样式)
android·java·wpf
三千道应用题3 天前
WPF学习笔记(16)树控件TreeView与数据模板
wpf
✎ ﹏梦醒͜ღ҉繁华落℘3 天前
WPF学习(四)
学习·wpf
zzyzxb3 天前
WPF中依赖属性和附加属性
wpf
难搞靓仔3 天前
WPF 右键菜单 MenuItem 绑定图片时只显示最后一个 Icon
wpf