动态更改属性

时间:2012-07-22 04:51:10

标签: c# wpf

我正在尝试使用控制名称,控件AssemblyQualifiedName,属性名称和属性值的字符串来更改控件的属性


我尝试过:

public void ChangeIt(string ctrlName, string typ,
                     string prop, string value)
{
    Type t = Type.GetType(typ);
    dynamic obj = Convert.ChangeType(App.Current.MainWindow.FindName(ctrlName), t);
    // Now how to
    // obj.Prop=value;
}

ChangeIt("Label1",
        "System.Windows.Controls.Label, PresentationFramework, Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35",
        "Content", "Hellow World!");

谢谢

1 个答案:

答案 0 :(得分:1)

您根本不需要该类型,也不需要使用动态。

public void ChangeIt(string ctrlName, string typ, string prop, string value) {
     object obj = App.Current.MainWindow.FindName(ctrlName);
     obj.GetType().GetProperty(prop).SetValue(obj, value);
}