我的课堂上有一个ObservableCollection
对象:
public class MyClass {
ObservableCollection<Stuff> oc;
....
}
我希望能够在课程之外访问
ObservableCollection<T>.CollectionChanged
事件。我可以启用get;
方法,但是我不想公开所有其他方法,属性和内容。如果我只想使用一个方法,则可以在
MyClass
中创建一个方法,然后在类中的oc
上调用该方法。我不知道如何使用Event对象执行此操作。那么,如何才能仅将活动公开?
最佳答案
用CollectionChanged
上的事件包装MyClass
事件。也许像这样:
public class MyClass
{
ObservableCollection<Stuff> oc;
//Assumes oc is never null.
public event NotifyCollectionChangedEventHandler CollectionChanged
{
add { oc.CollectionChanged += value; }
remove { oc.CollectionChanged -= value; }
}
}
然后,您可以订阅MyClass上的
CollectionChanged
事件,如下所示:var myInstance = new MyClass();
//Assume field is assigned at this point to something non-null
myInstance.CollectionChanged += delegate {/*Do something interesting */};