Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / как использовать свой TypeConverter / 5 сообщений из 5, страница 1 из 1
24.02.2010, 15:08
    #36485969
sergiy_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как использовать свой TypeConverter
Задача:
Есть тип Enum, но по сути может быть любым типом
Нужно что бы при присвоении ему значений другого типа (int например) автоматически производилось преобразование
то есть код типа
Код: plaintext
myEnumProperty=2;//корректный код
я предполагал что использование атрибута [TypeConverter(typeof(MyTypeConverter))]
автоматически решит эту задачу
но это к сожалению не работает.
в коде всегда выдает ошибку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class myTypeConvertor : TypeConverter 
{

   public override bool CanConvertFrom(ITypeDescriptorContext context,  Type sourceType) 
   {
         return true;
   }

   public override object ConvertFrom(ITypeDescriptorContext context,  CultureInfo culture, object value) 
   {
      if (value is string)
      {
          return Enum.Parse(typeof(myEnum), value.ToString());
      }
     if (value is int)
      {
          return myEnum.Capital;
      }
      return base.ConvertFrom(context, culture, value);
   }

если задавать свойство в Xaml (собственно задача), то позволяет задать свойство в виде любого текста но при попытке задать число ругается
...
Рейтинг: 0 / 0
24.02.2010, 20:42
    #36486725
Silverlight
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как использовать свой TypeConverter
...
Рейтинг: 0 / 0
25.02.2010, 05:14
    #36487081
sergiy_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как использовать свой TypeConverter
ЭТО НЕ ТО
ТАМ ПРО ТО КАК У ЕНУМА ЗАДАТЬ ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ И КОРРЕКТНО ОТОБРАЗИТЬ ИХ В ЛИСТБОКСЕ
...
Рейтинг: 0 / 0
25.02.2010, 07:12
    #36487111
sergiy_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как использовать свой TypeConverter
Сам конвертер привязывается то есть строка типа "ффф"
попадает в функцию ConvertFrom и может быть обработана так или иначе

При попытке задать в Xaml свойство в виде числа-> "1"
XAML парсер неприменно ругается
Numbers are not valid enumeration values.

ругается даже на значения которые строку типа->"1a "
'1a ' cannot be used as a value for 'MyProperty'. Numbers are not valid enumeration values.
...
Рейтинг: 0 / 0
25.02.2010, 10:15
    #36487322
sergiy_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как использовать свой TypeConverter
да если пробовать привести к какому либо типу кроме енум
то все работает на ура
Но вот енум как бы желательней в ряде случаев
а с ним и не получается
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / как использовать свой TypeConverter / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]