我有一个Generic类,它继承自ObservableCollection。
我希望每当此集合中我的对象的某些特定属性发生更改时,都会在此类中获取通知,而不是添加或删除对象,而是编辑/更新对象。
我有一些载体类,它们将作为Type参数传递给这个泛型类。在更改这些类中的属性后,我想要引发一个事件,该事件将在此Generic类中进一步处理。
public class CustomCollectionGenericClass<T>:ObservableCollection
{
}
public class HelperClass
{
public string Name
{
get{return _name;}
set{_name=value;
//raise some event which will be handled in custom collection class
}
}
}
我不知道在这种情况下如何订阅和举起活动
答案 0 :(得分:2)
您只能针对类的实例订阅非静态事件。您无法订阅某种类型的非静态事件。
在您的情况下,您可以做的是添加类型约束,确保约束强制该事件在该类上可用,然后订阅实例的事件:
public class GenClass<T> where T : RoutineClass
{
public someMethod(T yourInstance)
{
yourInstance.EventToSubscribe += yourHandler;
}
}
在这个例子中,我添加了一个接收实例的方法,因为你的泛型类中没有任何实例。这可能不是您所需要的,但无论哪种方式,您都需要一个实例来订阅事件。
一些澄清:当您有非静态事件时(根据您的代码),这适用。如果您有静态事件,则可以根据类型订阅事件。