INotifyPropertyChange接口错误

The*_*Spy 1 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";
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行以下代码时,我收到此错误:

INotifyUnderstandingYoutube.ViewModel 没有实现接口成员 System.ComponentModel.INotifyPropertyChanged.PropertyChanged

我不明白这背后的原因?任何人都可以解释一下是什么错误?

小智 5

您的

public PropertyChangedEventHandler PropertyChanged;
Run Code Online (Sandbox Code Playgroud)

定义PropertyChanged为一个字段,恰好是委托类型的字段,但仍然是一个字段.INotifyPropertyChanged预计一个事件.

public event PropertyChangedEventHandler PropertyChanged;
       ^^^^^
Run Code Online (Sandbox Code Playgroud)