1

我将有一个“主列表”(最好是 BindingList 类型)。在另一个类中,我有一个子列表,它由“主列表”的某些元素组成。类的每个实例都有不同的元素。有没有办法让每个子列表与“主列表”保持同步?

4

2 回答 2

0

也许您需要的是 ObseravleCollection 集合。

请参阅此了解更多详细信息 1. http://www.codeproject.com/KB/silverlight/SLListVsOCollections.aspx 2. http://karlhulme.wordpress.com/2007/03/04/synchronizedobservablecollection-and-bindablecollection/

于 2011-12-29T14:37:30.720 回答
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;
    }

}
于 2011-12-29T14:30:00.050 回答