У меня есть таблица свойств в C #, загружающая объект 'PropertyAdapter' (базовая оболочка вокруг одного из моих объектов, отображающая соответствующие свойства с соответствующими тегами)
У меня есть TypeConverter в одном из свойств (DataType, который возвращает перечисление возможных значений), так как я хочу ограничить значения, доступные для сетки свойств, десятичными и целочисленными, с двумя методами следующим образом
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
return new StandardValuesCollection(new List<Constants.DataTypes>() { Constants.DataTypes.Decimal, Constants.DataTypes.Integer });
}
Это отображается так, как я хочу, в сетке свойств, и когда я дважды щелкаю по полю свойства в сетке свойств, он счастливо переключается между Integer и Decimal. Аналогичным образом я могу использовать колесо мыши для прокрутки параметров в поле со списком свойств.
Однако, если я использую поле свойства в качестве поля со списком и выбираю значение из раскрывающегося списка, я получаю стандартное окно ошибки сетки свойств с ошибкой:
Объект типа 'System.String' не может
быть преобразованным в тип
'Pelion.PM3.Utils.Constants + Datatypes'.
Я предполагаю, что могу использовать переопределения Converter в конвертере типов, чтобы перехватить их и преобразовать в Enum of DataTypes, но почему бы сбой сетки свойств, когда я выбираю из выпадающего меню вместо двойного щелчка или «колесико мыши» в раскрывающемся списке?