首页 文章

选择项目列表框c#

提问于
浏览
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;
        }

谢谢

2 回答

  • 0

    列表框是发件人对象,因此您可以像这样访问它 . 您只需将发件人强制转换为列表框,然后您选择的项目就是一个列表框项目,这样您就可以投射它,然后您可以访问内容值 . 此外,当我创建我的selectionchanged事件处理程序时,它接受SelectionChangedEventArgs e而不是System.EventArgs e,在System.Windows.Controls命名空间中找到SelectionChangedEventArgs,它应该已经通过using语句导入到您的类中 .

    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;
    }
    
  • 1
    private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                foreach (var selectedItem in e.AddedItems)
                {
                    switch ((selectedItem as ListBoxItem).Content.ToString())
                    {
                        case "name 1":
                            MessageBox.Show("X");
                            break;
                        case "name 2":
                            MessageBox.Show("y");
                            break;
                        default:
    
                            break;
                    }
                }
            }
    

相关问题