【发布时间】:2011-08-18 02:50:05
【问题描述】:
我想要一个自定义的 observablecollection,以便我可以在添加 MyObj 类型的项目时捕获并在它添加到项目之前对其调用 MyObj.DoCalc()。我还希望能够将列表传递给 myCustomCollection 的构造函数,就像基类一样,以便它将项目设置到该列表中。
public class MyObservableCollection : ObservableCollection<MyObj>
{
protected override void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
{
// perform calculation
}
base.OnCollectionChanged(e);
}
}
就我所知。我不确定如何覆盖构造函数并且 Items 是只读的,所以我不知道如何将其设置为传入的列表。提前致谢。
【问题讨论】:
-
考虑不要从集合继承。您可以订阅更改事件,而不是覆盖。 stackoverflow.com/questions/2242919/…