我有一个基于Observable集合的类。我正在尝试使用方法clone从项目列表中设置Observablecollection,如下所示:
public class MyObservableCollection : ObservableCollection<Record>
{
public void Clone(List<Record> originalEnityList)
{
ObservableCollection<Record> cloned = new ObservableCollection<Record>(originalEnityList);
}
}
我想要做的是将克隆的集合复制到基本ObservableCollection,如:
this= new ObservableCollection<Record>(originalEnityList);
or
this=cloned;
我该怎么做?
我尝试了以下但没有任何进展:
MyObservableCollection coll = new ObservableCollection<Record>(originalEnityList);
但我相信MyObervableCollection缺少observablecollection的新构造函数。PS:我曾尝试使用foreach和填充集合,但因为我的集合非常大,所以需要花费太多时间。
我很确定我在这里错过了一些非常简单的东西。
答案 0 :(得分:1)
您只需添加一个将源集合作为参数的构造函数:
public class MyObservableCollection : ObservableCollection<Record>
{
public MyObservableCollection()
{
}
public MyObservableCollection(List<Record> originalEntityList)
: base(originalEntityList)
{
}
}
使用静态Clone
方法
private static List<Record> Clone(List<Record> originalEntityList)
{
return ...
}
你可以像这样编写第二个构造函数:
public MyObservableCollection(List<Record> originalEntityList)
: base(Clone(originalEntityList))
{
}