我正在尝试从字典中更改控件属性,因此字典中的键基本上是该控件的属性名称,值将是属性值。无论如何要做到这一点?
例如在我的词典中,我将“Name”作为键,将“buttonSave”作为值,如何将它们与我的控件相关联,以根据键和值设置其属性?
提前感谢。
答案 0 :(得分:2)
示例如何在方法PropertyInfo.SetValue
的情况下使用Reflectionpublic 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);
}
答案 1 :(得分:1)
使用System.Reflection;
在MSDN中查找
答案 2 :(得分:1)
myControl.GetProperty("Name").SetValue(myControl, "buttonSave", null);
首先检查属性是否存在以及它是否具有setter也是一个好主意。 有关反射的详细信息,请参阅here。