我正在尝试使用控制名称,控件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!");
谢谢
答案 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);
}