从字典中分配.net控件属性

时间:2012-08-07 04:25:17

标签: c# .net dictionary controls

我正在尝试从字典中更改控件属性,因此字典中的键基本上是该控件的属性名称,值将是属性值。无论如何要做到这一点?

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

提前感谢。

3 个答案:

答案 0 :(得分:2)

示例如何在方法PropertyInfo.SetValue

的情况下使用Reflection
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);
}

答案 1 :(得分:1)

使用System.Reflection;

在MSDN中查找

答案 2 :(得分:1)

myControl.GetProperty("Name").SetValue(myControl, "buttonSave", null);

首先检查属性是否存在以及它是否具有setter也是一个好主意。 有关反射的详细信息,请参阅here