我将有一个'主列表'(最好是BindingList类型)。在另一个类中,我有一个子列表,它由“主列表”的某些元素组成。该类的每个实例都有不同的元素。有没有办法让每个子列表与“主列表”保持同步?
答案 0 :(得分:0)
您可以通过扩展列表并添加复合对象来创建所需的列表类型,只要您更新“主”列表,也可以同步这些列表。
以下是我将如何在java中执行此操作,您可以在c#中执行相同操作但是知道我不记得确切的语法。你可以扩展你喜欢的列表类型。
public class MyList extends ArrayList {
private List<Object> someOtherList;
public MyList(){
super();
}
public void setSyncList(List<Object> list){
someOtherList = list;
}
@Override
public boolean add(Object arg0) {
boolean b = super.add(arg0);
someOtherList.add(arg0); // here you can decide what action should be done to the syncList, it might not want to add all elements, same goes for the remove below
return b;
}
@Override
public boolean remove(Object arg0) {
boolean b = super.remove(arg0);
someOtherList.remove(arg0);
return b;
}
}
答案 1 :(得分:0)
也许你需要的是ObseravleCollection集合。
有关详细信息,请参阅此处 1. http://www.codeproject.com/KB/silverlight/SLListVsOCollections.aspx 2. http://karlhulme.wordpress.com/2007/03/04/synchronizedobservablecollection-and-bindablecollection/