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