Событие не отображается в таблице свойств - PullRequest
3 голосов
/ 21 апреля 2009

Я создаю специальное текстовое поле поиска. Среди прочего у него есть эти два события:

    [Category("Behavior")]
    public event EventHandler<GenericEventArgs<string>> Search;

    [Category("Property Changed")]
    public event EventHandler<EventArgs> ActiveColorChanged;

    [Category("Property Changed")]
    public event EventHandler<EventArgs> InactiveColorChanged;

Дело в том, что только два нижних элемента отображаются в обозревателе событий свойства представления проекта (как бы оно ни было ...). И мне интересно, почему. Это потому что я не пользуюсь стандартом EventArgs? Это не должно иметь место, потому что, я имею в виду, есть другие события, не использующие это ... как события, связанные с нажатием клавиши, и т.д ...

Класс GenericEventArgs<T> выглядит следующим образом:

public class GenericEventArgs<T> : EventArgs
{
    public T Value { get; private set; }
    public GenericEventArgs() : this(default(T)) { }
    public GenericEventArgs(T value) { Value = value; }
}

Что я здесь не так делаю?

1 Ответ

5 голосов
/ 21 апреля 2009

Я подозреваю, что таблица свойств не поддерживает ваш универсальный класс EventHandler. Попробуйте это:

public delegate void GenericHandler<T>(object sender, GenericEventArgs<T> e);

Если это не сработает, попробуйте совершенно не универсальный обработчик, хотя бы для того, чтобы увидеть, в чем проблема.

Если это является проблемой, то я предлагаю вам создать отчет об ошибке на Connect , а затем опубликовать здесь URL-адрес ошибки, чтобы мы могли проголосовать за нее.

...