gpt4 book ai didi

c# - 可观察模型中的 IEnumerable

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

我处于必须使用现有模型的情况,而我不允许更改现有属性。

public class Car : ModelBase
{
private string _model;
public string Model
{
get { return _model; }
set { this.Update(x => x.Model, () => _model= value, _model, value); }
}

private IEnumerable<Person> _allowedDrivers;
public IEnumerable<Person> AllowedDrivers
{
get { return _allowedDrivers; }
set { this.Update(x => x.AllowedDrivers, () => _allowedDrivers=value, _allowedDrivers, value); }
}
}

现在我们最近开始实现 WPF UI,我需要使用这些现有模型。有什么方法可以使用 IEnumerable 并让它像 ObservableCollection 一样工作而无需真正更改它?我有什么选择。

问题是我删除了一个 AllowedDriver,然后添加了一个 AllowedDriver,但 UI 根本没有更新。这是合乎逻辑的,然后我(出于测试目的)将 IEnumerable 设为 ObservableCollection,然后 UI 就可以工作了。我是否有任何其他选项可以继续使用 IEnumerable 但会更新?

最佳答案

Is there any way I can use the IEnumerable and let it work like a ObservableCollection without changing it really?

您可以创建另一个继承Car 类的。由于您的 ObservableCar 继承了 Car 类,您可以访问 AllowedDrivers 属性。

因此,您可以声明所需的 observable 集合并使用从 AllowedDrivers 转换而来的 observable 集合进行初始化。此初始化应在 get 内。

public class ObservableCar: Car {
public ObservableCar(){
_observableAllowedDriver = new ObservableCollection<Person>(AllowedDrivers);
}
private ObservableCollection<Person> _observableAllowedDriver;
public ObservableCollection<Person> ObservableAllowedDriver
{
get { return _observableAllowedDriver; }
}
}

关于c# - 可观察模型中的 IEnumerable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48338330/

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