文字列型の値で、反射によるオブジェクトの整列プロパティ(水平/垂直)を設定したいと思います。私は次のようなものを使用します
private void SetPropertiesFromString(object nav, string properties)
{
Regex r = new Regex("`(?<property>[^~]*)~(?<values>[^`]*)");
MatchCollection mc = r.Matches(properties);
Type type = nav.GetType();
for (int i = 0; i < mc.Count; i++)
{
PropertyInfo prop = type.GetProperty(mc[i].Groups["property"].Value);
prop.SetValue(nav, Convert.ChangeType(mc[i].Groups["values"].Value, prop.PropertyType), null);
}
}
(これとまったく同じです)
私の問題は、XMLからプロパティを読み取っていて、HorizontalAlignment="Stretch"しかないことです。Controlの新しいエンティティを作成するより、HorizontalAlignmentのようなプロパティを設定する方法がわかりません。値は「Stretch」などです。これにより、例外「「System.String」から「System.Windows.HorizontalAlignment」へのキャストが無効になります。 「」