如何让listBox中得到当前选中项且给一个事件?
答案就是调用listBox中的属性:SelectionChanged,
如在xmal中定义 --- SelectionChanged="theVlaueChanged"
在后台再定义
private void theVlaueChanged(object sender, SelectionChangedEventArgs e)
{
MessageBox.Show("进来了哈");
}
这样就达到了我们的预想结果。但是你发现当两次连继同时点击同一个选项时他只会触发一次SelectionChanged事件。
原因很简单,ListBox 列表框里面的 Item 被选中后,ListBox 的 SelectedIndex 会被设置为该 Item 的 Index,当第二次选中这个 Item 时,事实上 SelectedIndex 并没有变,因此 SelectionChanged 事件也不会被触发,这个和html中的select中的onChanged方法一样。所以我们将SelectedIndex设为-1,即一个都没选中。
代码如下:
private void theVlaueChanged(object sender, SelectionChangedEventArgs e)
{
if (my_list.SelectedIndex == -1)
{
return;
}
else
{
MessageBox.Show("进来了哈");
}
my_list.SelectedIndex = -1;
}