我班上有ObservableCollection
个对象:
public class MyClass {
ObservableCollection<Stuff> oc;
....
}
我希望能够在课堂外访问ObservableCollection<T>.CollectionChanged
个活动。我可以启用get;
方法,但我不想公开所有其他方法,属性和内容。
如果我只想要一个方法可用,我会在MyClass
中创建一个方法,然后在类中的oc
上调用该方法。我不知道如何使用Event对象执行此操作。
那我怎么才能把这个活动公之于众?
答案 0 :(得分:3)
使用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 */};