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 memberSystem.ComponentModel.INotifyPropertyChanged.PropertyChanged
我不明白这背后的原因?谁能解释一下错误是什么?
最佳答案
你的
public PropertyChangedEventHandler PropertyChanged;
将 PropertyChanged
定义为一个字段,它恰好是一个委托(delegate)类型的字段,但仍然是一个字段。 INotifyPropertyChanged
需要一个事件。
public event PropertyChangedEventHandler PropertyChanged;
^^^^^
关于c# - INotifyPropertyChange 接口(interface)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21255537/