如果你的这个集合类是采用继承ARRAYLIST这样的,就要: public int Add(object i) { base.Add(i); UpdateYourCollection(i); CustomMethod(i); }如果你是采用在自己的类里加入ARRAYLSIT并通过索引器实现的,那么就直接在添加方法后加入 UpdateYourCollection(i); CustomMethod(i);
好象不对啊,我是这样的,我自定义一个控件 A,里面需要加入另外一个自定义控件类 B, 我就从collectionbase继承出一个Bcollection,并把Bcollection作为A里的一个属性Bs,然后在Bcollection中加入add方法, public int add(B b) { List.add(b); } 我说的意思是,我如何使用用A.Bs.add(b),能让A里面的Bs同步更新
设置自定义控件B的作用域为PUBLIC,就可以了VS系统添加了控件后默认定义为: private ControlBType controlB;change it to: public ControlBType controlB;
1) 自定义控件.集合类属性.add(类)这个只要你定义的是集合类,他就可以实现了。
2) 让自定义控件里的集合类更新,并触发自定义里的方法。 这个你在ADD里写入这些方法就OK啦
public int Add(object i)
{
base.Add(i);
UpdateYourCollection(i);
CustomMethod(i);
}如果你是采用在自己的类里加入ARRAYLSIT并通过索引器实现的,那么就直接在添加方法后加入
UpdateYourCollection(i);
CustomMethod(i);
我就从collectionbase继承出一个Bcollection,并把Bcollection作为A里的一个属性Bs,然后在Bcollection中加入add方法,
public int add(B b)
{
List.add(b);
}
我说的意思是,我如何使用用A.Bs.add(b),能让A里面的Bs同步更新
private ControlBType controlB;change it to:
public ControlBType controlB;
2.如果你的BS對應的私有變量是一個AyyayList,則使用Add方法時,AyyayList自動刷新數量成員.
如果用collectionbase來繼承,在空間上不好控制,有上下限的限制,所以最好用ArrayList.