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# 使用 linq 对字典进行排序

c# 依赖注入(inject)与接口(interface)和隐藏内部

c# - 将 EF 与不是 1 :1 的现有数据库和域/对象模型一起使用

c# - 使用 Type 变量转换变量

data-binding - F#:使用 INotifyPropertyChanged 进行数据绑定(bind)

c# - 处理异步套接字回调中的异常

c# - 基类实现 INotifyPropertyChanged : can derived types use its PropertyChanged event?

c# - 具有 ObservableCollection 和 INotifyPropertyChange 的 Json.Net 类层次结构被序列化但未反序列化

c# - 即使属性值未更改,也会触发 Propertychanged 事件

c# - 如何使用 EF 4.x DbContext 生成器获取属性更改通知