2012-11-13 129 views
0

我知道如何將一個列表綁定到列表框,但我用下面的代碼創建了一個多維列表,但無法弄清楚如何將其綁定到列表框。多維列表綁定到列表框

public class MultiDimDictList<K, T> : Dictionary<K, List<T>> 
    { 
     public void Add(K key, T addObject) 
     { 
      if (!ContainsKey(key)) Add(key, new List<T>()); 
      base[key].Add(addObject); 
     } 
    } 

然後下面利用這個類,並添加2個字符串列表:

var myDicList = new MultiDimDictList<string, string>(); 
     myDicList.Add("Title", "Data"); 
     myDicList.Add("Title2", "Data2"); 

基本上什麼,我試圖做的是綁定這個數據到一個列表框只顯示標題的,但隨後當點擊一個按鈕時,它使用數據部分來完成該過程。

我不知道該去哪裏,因爲我一直在看其他帖子,但沒有發現任何類似於我正在嘗試做的事情。

感謝您的任何幫助。

回答

0

A Dictionary<K,V>不是一個清單。你的案例中的標題是字典的關鍵字,而不是排序的。您可以通過Keys屬性訪問它們,但必須在綁定之前對它們進行排序。將此屬性添加到您的MultiDimDictList

public List<string> Titles { get { return Keys.OrderBy(k => k).ToList(); } } 

並將列表框綁定到此屬性。

上面的例子假定鍵是字符串類型。當使用泛型類型參數K你要轉換爲字符串第(除非你想的原因K列表):

public List<string> Titles { 
    get { 
     return Keys 
      .Select(k => k.ToString()) 
      .OrderBy(s => s) 
      .ToList(); 
    } 
} 
+0

它的錯誤與:不能隱式轉換列表列出我缺少什麼? – Reg

+0

添加了一個考慮泛型類型參數的示例。 –