c# - INotifyPropertyChange 接口(interface)错误

标签 c# inotifypropertychanged

public class ViewModel : INotifyPropertyChanged
{
    private string name;
    public string Name
    {
        get
        {
            return name;
        }
        set
        {
            if (name != value)
            {
                name = value;
                OnPropertyChanged("Name");

            }
        }
    }
    protected void OnPropertyChanged(string propertyname)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyname));
        }
    }
    public PropertyChangedEventHandler PropertyChanged;
}

public partial class MainWindow : Window
{
    private ViewModel vm;
    public MainWindow()
    {
        InitializeComponent();
        vm = new ViewModel { Name = "Shahrukh Khan" };
        DataContext = vm;
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        vm.Name = "Salman Khan";
    }
}

当我运行以下代码时出现此错误:

INotifyUnderstandingYoutube.ViewModel does not implement interface member System.ComponentModel.INotifyPropertyChanged.PropertyChanged

我不明白这背后的原因?谁能解释一下错误是什么?

最佳答案

你的

public PropertyChangedEventHandler PropertyChanged;

PropertyChanged 定义为一个字段,它恰好是一个委托(delegate)类型的字段,但仍然是一个字段。 INotifyPropertyChanged 需要一个事件。

public event PropertyChangedEventHandler PropertyChanged;
       ^^^^^

关于c# - INotifyPropertyChange 接口(interface)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21255537/

相关文章:

C# 多线程和套接字问题

wpf - EntityFramework EntityState 和数据绑定(bind)以及 INotifyPropertyChanged

c# - 在 C# 中为 double 添加千位分隔符

c# - 如何在 C# 中使用 REST,包括 PUT、POST 和 DELETE?

c# - C# 允许在虚拟方法上使用 new 的用例是什么?

c# - 可观察集合问题

c# - WPF 数据绑定(bind)标签内容

c# - 不兼容的双重转换 - 编译器未检测到

c# - 如何检测我的 ObservableCollection 中的项目是否已更改

wpf - 如何使用多个 ViewModel 处理一个 View 并触发不同的命令?