几个(新手)问题:
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
重新评估后,您可以在以下日期提出 PropertyChangedCanDeletePerson
,像这样
set
{
if ((this.selectedPerson != value))
{
this.selectedPerson = value;
base.OnPropertyChanged("SelectedPerson");
base.OnPropertyChanged("CanDeletePerson");
}
}
与任何普通事件一样,但如果您使用 WPF,通常不需要显式订阅
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)