需要捕获按下ListBoxItem的事件

时间:2015-10-27 22:29:03

标签: c# wpf xaml

在我的WPF程序中,我有一个sudo pecl install pecl_http 组件,其中有一些ListBox。 当我按下列表的元素时,我需要抓住这个事件,但我的代码不起作用:

ListBoxItems

我应该抓住事件 private void mailsListBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { MessageBox.Show("-------------"); // even this doesn't work switch (mailsListBox.SelectedIndex) { // this doesn't work too... case 0: MessageBox.Show("00"); break; case 1: MessageBox.Show("11"); break; case 2: MessageBox.Show("22"); break; default: break; } } 吗?

MouseLeftButtonDown

2 个答案:

答案 0 :(得分:2)

我认为如果您处理 SelectionChanged 事件会更好。

答案 1 :(得分:1)

正如tagaPdyk所说,您应该实际捕获 SelectionChanged SelectedIndexChanged 事件事件,如下所示:

private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
        //maybe check if there actually is a selection
        if(listBox1.SelectedItems[0] != null)
        {
                var item = listBox1.SelectedItems[0];
                //do something with your item
        }
}

您实际上可以在列表框中获取所有选定的项目(返回array),或者只使用listBox1.SelectedItems[0]获取第一项。在您的控件properties中,您可以定义是否需要多选。