几个(新手)问题:
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属性?
基本上,它最初是禁用的,但是当我单击网格并逐行移动时,SelectedPerson正在更新,但是CanDeletePerson没有获得更新后的值,那么如何获得它以再次实际检查值?
3)我明白了
...取决于是否有任何事件订阅
您如何订阅活动?
最佳答案
正确-不会触发
是的,要重新评估CanDeletePerson
,您可以在CanDeletePerson
上引发PropertyChanged,如下所示
set
{
if ((this.selectedPerson != value))
{
this.selectedPerson = value;
base.OnPropertyChanged("SelectedPerson");
base.OnPropertyChanged("CanDeletePerson");
}
}
像任何正常事件一样,但是如果您使用的是WPF,通常不需要显式订阅