2012-11-13 97 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

添加了一个考虑泛型类型参数的示例。 –