WPF Назначение элемента управления Свойства с использованием отражения в диез - PullRequest
2 голосов
/ 20 мая 2011

Я пытаюсь создать приложение, которое создает объекты из данных, считываемых из файла XML.

Используя отражение, мне удалось создать нужные мне объекты и назначить некоторые свойства, такие как примитивные типы иТипы ENUM.

Для примитивных типов, где свойством является запись в Словаре с именем изменяемого свойства и значением для установки

 type.GetProperty((string)property.Key).SetValue(control, Convert.ChangeType((string)property.Value, propertyType, null), null);

и для типов ENUM

object desiredPropertyValue = Enum.Parse(propertyType, (string)property.Value);
                    propertyInfo.SetValue(control, desiredPropertyValue, null);

ПроблемаУ меня есть то, что я не могу найти способ установить другие типы свойств, такие как Fontweight, fontfamily, Margin и многие другие. Я думаю, что они имеют структуру типа, любая помощь будет оценена

1 Ответ

1 голос
/ 20 мая 2011

Вы можете использовать связанные преобразователи типов для преобразования объектов в строку или из нее. Например, для FontWeight вы можете использовать FontWeightConverter примерно так:

object value = new FontWeightConverter().ConvertFromString((string)property.Value)

Аналогично, вы можете использовать ConvertToString для преобразования в строку для сохранения в вашем словаре.

...