我有一个名为Items的公共属性,它是一个List。我想告诉它什么时候改变了。我怎样才能做到这一点?如何知道集合已被编辑?
例如,如果Items.Add被调用,我希望能够然后调用UpdateInnerList。
我该怎么做?
我有一个名为Items的公共属性,它是一个List。我想告诉它什么时候改变了。我怎样才能做到这一点?如何知道集合已被编辑?
例如,如果Items.Add被调用,我希望能够然后调用UpdateInnerList。
我该怎么做?
您能使用ObservableCollection
吗?
如何创建一个List子类并重写Add方法?
void Main()
{
var x=new MySpecialList<string>();
x.Add("hello");
}
class MySpecialList<T>:List<T>
{
public new void Add(T item)
{
//special action here
Console.WriteLine("added "+item);
base.Add(item);
}
}
它支持CollectionChanged事件,这应该是你所需要的。
关于使用'ObservableCollection'的唯一警告是,如果您需要对正在更改的项目进行操作,'.Clear()'方法引发更改的事件,但参数中没有项目,因此,您不知道什么是除去。这显然只与你关心有关。 – Marc 2010-07-22 16:21:53
很高兴知道。感谢您的评论。 – 2010-07-22 16:22:28
.net 3.5?...... – spender 2010-07-22 16:22:34