2011-12-05 11 views
0

複数のリストまたはバインディングリスト(1つのグリッドに違いがないはずです)をデータバインドする必要があります。これらのリストはすべて同じサイズですが、オブジェクトタイプは異なります。これらのリスト内の異なるオブジェクトのプロパティは、リストAの最初の要素がリストBの最初の要素に属しているかのように、列の隣に列として表示されます。複数のデータバインドグリッドへのリスト

今までデータをDataTableにコピーし、これをデータソースとして使用しましたが、いろいろな理由からこれはもう不可能です。

私は、複数のリストを直接バインドすることはできないことを知っていますが、これをどのように開始するかという手がかりはありません。私はデータバインディングについて少しは読んだけど、これを動作させるためには多くのコードを書かなければならず、CurrencyManagerなどを使って作業する必要があります。

私に役立つ簡単な解決策はありますか?おそらく、すべてを行うラッパークラスですか? もしそうでなければ、誰かが私にインターフェイスを実装しなければならないというヒントを教えてもらえますか?

+1

を、あなたは何をする必要がありますかこれらのオブジェクトはフラット化され、単一のリスト(データテーブルのアプローチでやっているようにさまざまなリストに参加する)があり、それらをグリッドに表示します。あなたの質問からはっきりしないことは、「これはもうできないさまざまな理由」と言ったときに何を参照するのですか?それはうわーですか? – Icarus

答えて

0

これらの異種オブジェクトを1つのオブジェクトにすることができない場合、これはバインド可能なリストではありません。

あなたブランドの新しいオブジェクトリストにこれらの各オブジェクトの簡易コピーを行うと、オンザフライでそれらを作成することができます。

Object MyFirstObject; 
Object MySecondObject; 

void BindableClass(Object class_1, Object class_2) 
{ 
    MyFirstObject = class_1; 
    MySecondObject = class_2; 
} 

public String _firstColumnString { get { return MyFirstObject.FirstColumnString; } }  
public String _secondColumnString { get { return MySecondObject.SecondColumnString; } } 

をいっそのこと、あなたが必要な情報だけを引き出しますあなたのBindableClassコンストラクタ。

void BindableClass(Object class_1, Object class_2) 
{ 
    _firstColumnString = MyFirstObject.FirstColumnString; 
    _secondColumnString = MySecondObject.SecondColumnString; 
} 

(しかし、今はもうただ一つ下のリストには本当にです!)

あなたは、その後のようなものやってオブジェクトを作成することができます明らかに

for (int i = 0; i < TheListSize; i++) 
{ 
    ABindableList list = new BindableClass(FirstList[i], SecondList[i]); 
} 
関連する問題