我正在尝试从字典中更改控件属性,因此字典中的键基本上是该控件的属性名称,而值将是属性值。有没有办法做到这一点?
例如,在我的字典中,我将“Name”作为键,将“buttonSave”作为值,我如何将它们与我的控件相关联以根据键和值设置其属性?
提前致谢。
我正在尝试从字典中更改控件属性,因此字典中的键基本上是该控件的属性名称,而值将是属性值。有没有办法做到这一点?
例如,在我的字典中,我将“Name”作为键,将“buttonSave”作为值,我如何将它们与我的控件相关联以根据键和值设置其属性?
提前致谢。
您的示例如何在您的情况下使用反射与方法PropertyInfo.SetValue
public class Customer
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
}
var dictionary = new Dictionary<string, object>
{
{"Id", new Guid()},
{"Name", "Phil"},
{"Phone", "12345678"}
};
var customer = new Customer();
foreach (var pair in dictionary)
{
var propertyInfo = typeof(Customer).GetProperty(pair.Key);
propertyInfo.SetValue(customer, pair.Value, null);
}
使用 System.Reflection;
在 MSDN 中查找
myControl.GetProperty("Name").SetValue(myControl, "buttonSave", null);
首先检查该属性是否存在以及它是否具有设置器也是一个好主意。有关反射的更多信息,请参见此处。