天天看点

listBox控件 当前选中事件

如何让listBox中得到当前选中项且给一个事件?答案就是调用listBox中的属性:SelectionChanged,

如在xmal中定义  --- SelectionChanged="theVlaueChanged"

在后台再定义

private void theVlaueChanged(object sender, SelectionChangedEventArgs e)

        {

            MessageBox.Show("进来了哈");

        }   

这样就达到了我们的预想结果。<b>但是你发现当两次连继同时点击同一个选项时他只会触发一次SelectionChanged事件。</b>

原因很简单,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;

        }