listBox控件 当前选中事件

如何让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;
        }  


你可能感兴趣的:(listbox,当前选中事件)