gpt4 book ai didi

c# 包装模型对象,其中包含用于 MVVM 绑定(bind)的列表

转载 作者:行者123 更新时间:2023-12-03 10:32:31 25 4
gpt4 key购买 nike

假设我有一个模型对象

class ModelClass
{
public List<Element> eList;

public void MethodA()
{
doSomething();
}
}

我也想在 MVVM 中使用这个对象。然后 Viewmodel 会调用像 MethodA 这样的方法。操作 eList 中的数据和元素将被更新。有没有办法在不制作 eList 的情况下做到这一点?一个 ObservableCollection ?我想这样做是为了使用这个 ModelClass在其他地方也没有太多的代码污染。

最佳答案

如果我们比较 列表 可观察集合 那么两者都是从 IList 实现的。那里没有太大区别。最大的不同是 ObservableCollection 也实现了 INotifyCollectionChanged 接口(interface),它允许 WPF 绑定(bind)到它。

因此,如果您不想在模型类中使用 List 而不是 ObservableCollection,那么您需要使用 来实现该类。 INotifyCollectionChanged :

class ModelClass:INotifyCollectionChanged
{
public List<Element> eList;// call OnCollectionChanged() when you set/add/remove...the list).

public void MethodA()
{
doSomething();
}

#region INotifyCollectionChanged Members

protected void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
{
if (CollectionChanged != null)
CollectionChanged(this, e);
}

public event NotifyCollectionChangedEventHandler CollectionChanged;

#endregion

}

关于c# 包装模型对象,其中包含用于 MVVM 绑定(bind)的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52146598/

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