我正在尝试使用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;
}
感谢
答案 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;
}
}
}