gpt4 book ai didi

c# - 试图了解 INotifyPropertyChanged

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:32 25 4
gpt4 key购买 nike

几个(新手)问题:

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)我明白了

... depends on whether anything has subscribed to the event

如何订阅事件?

最佳答案

  1. 正确 - 不会触发
  2. 是的,要重新评估 CanDeletePerson,您可以在 CanDeletePerson 上引发 PropertyChanged,就像这样

        set
    {
    if ((this.selectedPerson != value))
    {
    this.selectedPerson = value;
    base.OnPropertyChanged("SelectedPerson");
    base.OnPropertyChanged("CanDeletePerson");
    }
    }
  3. 与任何普通事件一样,但如果您使用的是 WPF,则通常不需要显式订阅

关于c# - 试图了解 INotifyPropertyChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1258262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com