2

C# を使用して、switch ステートメントを使用してリストボックス内の項目を選択しようとしていますが、何も起こりません:

これは私の現在のコードです:

XAML

<ListBox x:Name="test" (XAML OMITED) SelectionChanged="test_SelectionChanged">
 <ListBoxItem Content="name 1" />

c#

 private void test_SelectionChanged(object sender,  System.EventArgs e)
    {
        switch (test.SelectedItem.ToString())
        {
            case "name 1":
                MessageBox.Show("X");
                break;
            case "name 2":
                MessageBox.Show("X");
                break;
            default:

                break;
        }

ありがとう

4

2 に答える 2

1

リストボックスは送信者オブジェクトなので、そのようにアクセスできます。送信者をリストボックスとしてキャストするだけで、選択したアイテムはリストボックスアイテムであるため、キャストするとコンテンツ値にアクセスできます。また、selectionchanged イベント ハンドラーを作成したときに、System.EventArgs ではなく SelectionChangedEventArgs を受け入れます。

var mySender = (ListBox)sender;
swtich(((ListBoxItem)mySender.SelectedItem).Content.ToString()){

  case "name 1":
            MessageBox.Show("X");
            break;
  case "name 2":
            MessageBox.Show("X");
            break;
  default:
            break;
}
于 2013-07-22T14:17:54.323 に答える