多维列表绑定到列表框

时间:2012-11-13 16:45:06

标签: c# list data-binding listbox multidimensional-array

我知道如何将列表绑定到列表框但我使用下面的代码创建了一个多维列表,但无法弄清楚如何将它绑定到列表框。

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");

基本上我要做的是将这些数据绑定到仅显示标题的列表框,但是当单击按钮时它会使用数据部分来完成该过程。

我不知道该去哪里,因为我一直在看其他帖子,但没有找到类似于我想做的事情。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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