NullableConverter для обнуляемых свойств компонента WinForms - PullRequest
0 голосов
/ 28 мая 2020

Если я пишу визуальный элемент управления WinForms и хочу сделать одно из его свойств типа значения обнуляемым , нужно ли мне создавать специальный преобразователь типов или редактор, чтобы он мог полностью использоваться в VS Property Grid?

Например,. NET Framework предоставляет класс NullableConverter . Нужно ли мне прикреплять его к моему свойству, допускающему значение NULL, через TypeConverterAttribute ?

Я пытался преобразовать одно из свойств int в int?, и, похоже, это свойство отлично работает в Сетка свойств. Я могу указать числовое значение c или очистить это свойство, чтобы снова сделать его нулевым.

1 Ответ

0 голосов
/ 28 мая 2020

Сетка свойств использует TypeDescriptor для получения информации о преобразователе. Так, например, если у вас есть этот класс:

public class MyClass
{
    public int? NullableInteger { get; set; }
}

С этим кодом:

// get first property's type converter
var cv = TypeDescriptor.GetProperties(typeof(MyClass))[0].Converter;

вы получите TypeConverter для свойства NullableInteger, которое уже NullableConverter.

Значит, объявлять вручную не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...