Несколько (Новичок) вопросы:Пытаясь понять INotifyPropertyChanged
1) Я вижу много
public Person SelectedPerson { get; set; }
Я предполагаю, что это не срабатывает изменения свойства?
Итак, если я хочу это сделать, я должен предоставить следующее:
private Person selectedPerson;
public Person SelectedPerson
{
get
{
return this.selectedPerson;
}
set
{
if ((this.selectedPerson != value))
{
this.selectedPerson = value;
base.OnPropertyChanged("SelectedPerson");
// Note: Using ViewModelBase
}
}
}
2) Если у меня есть следующие:
public bool CanDeletePerson
{
get
{
return SelectedPerson != null;
}
}
, а также в XAML
< Button IsEnabled="{Binding CanDeletePerson}"
Command="{Binding DeletePersonCommand}"> Delete </ Button >
Как заставить его пересмотреть свойство CanDeletePerson? В принципе, он изначально отключен, но когда я нажимаю на сетку и перемещаю строку в строку, обновляется выбранная версия IS, но CanDeletePerson НЕ получает обновленное значение, так как я могу заставить его фактически проверить значение снова ?
3) Я вижу
... зависит от того, является ли что-то подписался на событие
Как вы подписаться на событие?
+1 У тебя получилось позже, но мне понравилась организация вашего ответа. –
см. Http://stackoverflow.com/questions/1329138/how-to-make-databinding-type-safe-and-support-refactoring/1333874#1333874 для компилятора проверенного способа реализации INotifyPropertyChanged. –