0

私のコードでは、リスト ボックスを使用して、作成中のクラスのオブジェクトを表示しています。私が望むのは、リスト ボックス内の項目をクリックして、選択した項目をプログラムで使用できるようにすることです。アイテムは、以下に示すようにディクショナリから取得されます。

private Dictionary<Int32, MyClass> collection;

public Window1()
{
    ListBox1.SelectionChanged += new SelectionChangedEventHandler(ClickAnItem);
    ListBox1.ItemSource = collection;
}

さて、これはすべて機能し、ListBox は期待どおりにコレクションを表示し、イベントは正常に発生しますが、選択した値を実際に使用する方法に行き詰まっています。

private void ClickAnItem(object sender, RoutedEventArgs e)
{
    ListBox list = sender as ListBox;
    /** list has the Int32 and the MyClass object but I can't seem to 
     *  get them out of there programmatically
     */
}

ListBox.SelectedItems を Dictionary 型のオブジェクトにキャストしようとしましたが、役に立ちませんでした。

私はそれを実行しませんでしたが、似たような質問があります。ただし、XAML の編集はできれば避けたいと考えています。実行時にできることが多ければ多いほどよいのです。

私の質問は、選択したアイテムの「Int32」と「MyClass」にアクセスするにはどうすればよいですか? 私は過去に C# を使用していましたが、今また使用するようになり、1 時間以上悩まされています。

4

1 に答える 1