У меня следующий код, и он работает нормально.
public partial class MainWindow : Window
{
Person person;
public MainWindow()
{
InitializeComponent();
person = new Person { Name = "ABC" };
this.DataContext = person;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
person.Name = "XYZ";
}
}
class Person: INotifyPropertyChanged
{
string name;
public string Name
{
get
{
return name;
}
set
{
name = value;
OnPropertyChanged("Name");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string strPropertyName)
{
if(null != PropertyChanged)
{
PropertyChanged(this,
new PropertyChangedEventArgs(strPropertyName));
}
}
}
Когда я создаю объект "person" в конструкторе MainWindow, он присваивает значение для свойства "Name" person, котороевремя события PropertyChanged равно NULL .
Если для события Button_Click назначено одно и то же свойство класса "person" класса Name, событие PropertyChanged равно NOT NULL и имеет значениеуказывая на OnPropertyChanged.
У меня вопрос, как событие «PropertyChanged» назначается методу OnPropertyChanged?
Заранее спасибо.