Событие, не отображаемое в таблице свойств
-
12-09-2019 - |
Вопрос
Я создаю специальное текстовое поле поиска.Среди прочего, в нем есть эти два события:
[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; }
}
Что я здесь делаю не так?
Решение
Я подозреваю , что Сетка свойств не поддерживает ваш класс EventHandler с двойным обобщением.Попробуй это:
public delegate void GenericHandler<T>(object sender, GenericEventArgs<T> e);
Если это не сработает, попробуйте использовать совершенно не универсальный обработчик, хотя бы для того, чтобы посмотреть, не в этом ли проблема.
Если это является проблему, то я предлагаю вам создать отчет об ошибке об этом на Контакты, затем разместите URL-адрес ошибки здесь, чтобы мы могли проголосовать за нее.