2011-12-05 85 views
0

我需要將多個列表或綁定列表綁定到一個網格(應該沒有區別)。這些列表都具有相同的大小,但具有不同的對象類型。這些列表中不同對象的屬性應該顯示爲彼此相鄰的列,就好像列表A的第一個元素屬於列表B的第一個元素一樣,等等。將多個列表數據綁定到網格

到現在爲止,我將數據複製到一個DataTable中,並將其用作數據源,但由於各種原因,這是不可能的。

我知道不可能直接綁定多個列表,但我不知道如何啓動它。我讀了一些關於數據綁定的內容,但看起來我必須編寫很多代碼才能工作,使用CurrencyManager等。

有沒有簡單的解決方案可以幫助我?也許是一個包裝類,可以做到這一切? 如果沒有,有人可以給我一些提示哪些接口必須實現,還有什麼要記住?

+1

顯然,你需要做什麼是扁平化這些對象,並有一個單一的列表(加入各種列表,你顯然是用你的數據表方法)並將它們顯示在網格上。從你的問題中不清楚的是當你說「不可能再有各種各樣的原因了」時,你指的是什麼。這是什麼? – Icarus

回答

0

如果你不能讓這些不同的對象成爲一個對象,那麼這不是一個可綁定的列表。

可以做到每個對象的淺拷貝在一個全新的對象名單和即時創建它們:

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]); 
}