0

我正在尝试使用控件名称、控件 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!");

谢谢

4

1 回答 1

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);
}
于 2012-07-22T05:22:29.003 回答