gpt4 book ai didi

data-binding - MVVM:当我更改对象本身时,如何通知每个对象属性的更改?

转载 作者:行者123 更新时间:2023-12-04 05:15:49 26 4
gpt4 key购买 nike

我有一个包含 (Person)Patient 属性的 ViewModel。在我的 View 中,我绑定(bind)到 Patient 的一些属性,例如 NameAge

问题是:如果我更改 Patient,我的 View 中不会发生任何事情,除非我明确通知每个属性更改(我正在使用 Caliburn.Micro 因此 PropertyChangedBaseNotifyOfPropertyChange 内容):

public class PersonViewModel : PropertyChangedBase {

Person _patient;

public Person Patient {
get { return _patient; }
set {
_patient = value;
NotifyOfPropertyChange(() => Patient); // this doesn't update the view
NotifyOfPropertyChange(() => Name); // this updates, but would I need one line for each property??
}
}
}

更广泛的应用上下文是这样的:我有一个 PersonManager 屏幕,包含三个区域,每个区域都有自己的 View 和 View 模型:人员列表、单个人的信息以及与每个人相关的医疗程序列表。

我几乎可以肯定我在这里遗漏了什么。我想在人员列表中选择一个人,然后通过绑定(bind)更新显示人员数据和人员过程的区域,而无需手动通知新选择的人员的每个属性更改。

最佳答案

我已经使用 feature of PropertyChanged event 解决了这个问题,它使用 null 作为参数:

The PropertyChanged event can indicate all properties on the object have changed by using either null or String.Empty as the property name in the PropertyChangedEventArgs.

然后,我解决了我的问题:

    public Paciente Paciente {
get { return _paciente; }
set {
_paciente = value;
NotifyOfPropertyChange(null);
}
}

成功了!

关于data-binding - MVVM:当我更改对象本身时,如何通知每个对象属性的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16420387/

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