2012-08-07 103 views
0

我試圖從字典中更改控件屬性,所以基本上字典中的鍵是該控件的屬性名稱,該值將是屬性值。無論如何要做到這一點?從字典中分配.net控件屬性

例如在我的字典中我有「名稱」作爲鍵和「buttonSave」作爲值,我如何將它們與我的控件相關聯以根據鍵和值設置其屬性?

在此先感謝。

+0

你有沒有看過可能使用反射或switch語句? – 2012-08-07 04:28:10

回答

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); 
} 
+0

這就是我正在尋找的,謝謝隊友。 – 2012-08-07 07:10:44

+0

不客氣! – 2012-08-07 07:15:42

1

using System.Reflection;

查找在MSDN

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

這也將是首先要檢查,該場所存在的好主意,並且它有一個setter。 有關反射的更多信息,請參見here

+0

Yup歡呼指出, – 2012-08-07 07:11:32