質問

発行っているがマッピングの複数のGUI分野のオブジェクトのプロパティ(プレゼンテーション層へのビジネスロジック層のマッピング).具体的には、これはVB.Net 2.0ポートしています。

自然の溶液を必要として4つの柱を示すと同タイプの行動を当社のGUI-各列からなる11textboxesまでこの小さなサンプルサイズの問題を超えて延びて11textboxes).

私は現在おこなう設定のタグのテキストボックスすべてにおいてカラムの値はこのように:

Textbox1.tag = "name"
Textbox2.tag = "type"
Textbox3.tag = "speed"

イベントが、テキストボックスなど打鍵、こちらの方もよろしくはコンテナのサブコンポーネン、タグもセットを文字列としてマッピングは特定のオブジェクトです。使っているのに伴い、テキストボックスのタグを判断するためにどのオブジェクトのプロパティが必要です。以上を全体としてみれば、するとどうなるのかわかりません

dim objectToMapTo //the generic parent object which all my custom myObjects inherit from

select case sender.parent.tag //the parent object that the property needs to map to
    case "column1"
         objectToMapTo = myObject1
    case "column2"
         objectToMapTo = myObject2
    case "column3"
         objectToMapTo = myObject3
    case "column4"
         objectToMapTo = myObject4
end select

select case sender.tag //the actual textbox's tag value which maps to the property
    case "name"
         objectToMapTo.Name = sender.text //sender.text is conceptual for 
        //the data that needs to be set -- i.e. this could be a calculated 
        //number based on the text, or simply a string, etc
    case "type"
         objectToMapTo.Type = sender.text
    case "speed"
         objectToMapTo.Speed = sender.text
    ...
end select

として見ることができるので良くなかったのですが、むしろ。現在、我々の設定43あ奇性マップすることができ--このselectステートするためには、含まれる--その多くは組み込まれた複数の方法で試してみようと乾(いぬのコードは本質的に概念的に実施。

質問はたいのですがrefactorす。また使用辞書-ハッシュにある程度ではなく、だんだ実装しているものと考えられま肥大化は問題です。

のです。

役に立ちましたか?

解決

最初の問題でゾルによる設定はタグとしてのオブジェクトです。タグはない文字列が型オブジェクトです。

第二の問題を解決するusin反射がりの価値のタグに一致しなければならないpropertynameます。

_objectToMapTo.GetType().InvokeMember(sender.tag,BindingFlags.Instance Or BindingFlags.Public,Nothing, _objectToMapTo, New Object() {sender.text})

免責事項に反射がありそな100%正確です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top