2011-05-20 67 views
2

我正在嘗試創建一個應用程序,用於從XML文件讀取的數據創建對象。WPF分配控件在c sharp中使用反射的屬性

使用反射我已經設法創建了我需要的對象,並指定了一些屬性,如原始類型和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,保證金和其他許多我認爲這些是結構類型,任何幫助將不勝感激

回答

1

Y您可以使用關聯的類型轉換器將對象轉換爲字符串。例如,對於fontWeight設置可以使用FontWeightConverter像這樣:

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

同樣,你可以使用ConvertToString轉換爲字符串在你的字典節約。

+0

感謝您的答案,但用這種方法,我仍然需要事先知道fontWeight是我想要更改的屬性,並且必須創建一個fontweight轉換器。 – Steven 2011-05-23 08:06:49