包含未出现在Designer中的泛型类型的EventHandler

时间:2013-10-10 12:38:58

标签: c# generics designer eventargs

我将通用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。

0 个答案:

没有答案