选择项目列表框c#

时间:2013-07-22 14:06:12

标签: c# xaml listbox windows-phone

我正在尝试使用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 :(得分:1)

列表框是发件人对象,因此您可以像这样访问它。您只需将发件人强制转换为列表框,然后您选择的项目就是一个列表框项目,这样您就可以投射它,然后您可以访问内容值。此外,当我创建我的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 :(得分:0)

 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;
                }
            }
        }