0

我正在尝试从字典中更改控件属性,因此字典中的键基本上是该控件的属性名称,而值将是属性值。有没有办法做到这一点?

例如,在我的字典中,我将“Name”作为键,将“buttonSave”作为值,我如何将它们与我的控件相关联以根据键和值设置其属性?

提前致谢。

4

3 回答 3

2

您的示例如何在您的情况下使用反射与方法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);
}
于 2012-08-07T04:42:45.180 回答
1

使用 System.Reflection;

在 MSDN 中查找

于 2012-08-07T04:36:40.220 回答
1
myControl.GetProperty("Name").SetValue(myControl, "buttonSave", null);

首先检查该属性是否存在以及它是否具有设置器也是一个好主意。有关反射的更多信息,请参见此处

于 2012-08-07T04:43:12.790 回答