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

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

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

谢谢你的帮助。

4

1 回答 1

0

ADictionary<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(); 
    }
}
于 2012-11-13T16:54:15.990 回答