0

ディクショナリからコントロールプロパティを変更しようとしているので、基本的にディクショナリのキーはそのコントロールのプロパティ名であり、値はプロパティ値になります。とにかくこれを行うことはありますか?

たとえば、私の辞書では、キーとして「Name」、値として「buttonSave」がありますが、キーと値に基づいてプロパティを設定するために、それらをコントロールに関連付けるにはどうすればよいですか?

前もって感謝します。

4

3 に答える 3

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);
}
于 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 に答える