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 に答える