1

UI にミラーリングされたカスタム オブジェクトのコレクションがあります。

インターフェイス (非常に簡素化)

public interface IMyInterface
{
  string Name { get; set; }
  int Data { get; set; }
}

コレクション

MyCollection<IMyInterface> Foo;

UI (コンテンツをFoo分かりやすい方法で表示するものなど)

Name: [ asdf ] Data: [ 1234 ]
Name: [ qwer ] Data: [ 5678 ]
Name: [ zxcv ] Data: [ 0000 ]

私のプログラムでは、2 つのタイプを開いて、単一のオブジェクトIMyInterfaceとともに平均データを表示できるようにする必要があります。IMyInterface

Name: [ asdf ] Data: [ 1234 ]
Name: [ qwer ] Data: [ 5678 ]
Name: [ zxcv ] Data: [ 0000 ]
Name: [ 2 Objects (asdf, qwer) ] Data: [ 3456 ]

私はこの新しい平均からasdf抜け出すことができなければなりません.qwer

これを達成するための最良の方法は何ですか? 次の 3 つのオプションがあると思います。

  1. IMyInterfaceの内部コレクションを継承する型を作成しIMyInterfaceます。ただし、一部のプロパティは平均化できないため、これは少し汚い感じがします。
  2. Foo`MyCollection> に置き換えて、それを使用する場所で、内部コレクションの数を確認します
  3. MyCollection を辞書のようなオブジェクトに変換し、オブジェクトごとに「グループ」を指定して、グループ ID でオブジェクトを取得できるようにします。

どんな提案でも大歓迎です。

4

1 に答える 1

2

Composite design patternを使用できます。その良い例は、.net のコントロール ツリーです。

各 IMyInterace は IMyInterfaces のコレクションを持つことができ、無関係なプロパティをどうするかを選択できます (いつでも null を返すことができます)。

于 2012-10-08T14:04:23.280 に答える