ディクショナリからコントロールプロパティを変更しようとしているので、基本的にディクショナリのキーはそのコントロールのプロパティ名であり、値はプロパティ値になります。とにかくこれを行うことはありますか?
たとえば、私の辞書では、キーとして「Name」、値として「buttonSave」がありますが、キーと値に基づいてプロパティを設定するために、それらをコントロールに関連付けるにはどうすればよいですか?
前もって感謝します。
ディクショナリからコントロールプロパティを変更しようとしているので、基本的にディクショナリのキーはそのコントロールのプロパティ名であり、値はプロパティ値になります。とにかくこれを行うことはありますか?
たとえば、私の辞書では、キーとして「Name」、値として「buttonSave」がありますが、キーと値に基づいてプロパティを設定するために、それらをコントロールに関連付けるにはどうすればよいですか?
前もって感謝します。
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);
}
System.Reflectionを使用します。
MSDNで検索
myControl.GetProperty("Name").SetValue(myControl, "buttonSave", null);
また、最初にプロパティが存在し、セッターがあることを確認することをお勧めします。リフレクションの詳細については、ここを参照してください。