我将通用EventArgs
类定义为:
public class GenericEventArgs<T> : EventArgs
{
public GenericEventArgs(T value)
{
Data = value;
}
public T Data { get; private set; }
}
如果我向event
添加EventHandler<T>
类型UserControl
,则只有在我将我的通用EventArgs
类型子类化时,它才会显示在Designer中。
// this event will not appear in Designer
public event EventHandler<GenericEventArgs<String>> Event1;
// this event appears in Designer as expected
public event EventHandler<StringEventArgs> Event2;
其中StringEventArgs
定义为:
public class StringEventArgs : GenericEventArgs<String>
{
public StringEventArgs(String value)
: base(value)
{
}
}
我尝试将[Browsable(true)]
属性添加到活动中,并将EventArgs<T>
类标记为Serializable
但未成功。
可能导致这种情况,是否有可用的解决方法(除了子类化)?
我正在使用VS2010和.NET 4.0。