在Listbox中提供SelectedIndex -1

时间:2010-02-12 10:06:08

标签: wpf listbox

我有列表框并获得所选项目。代码是

private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            int index = listBox1.SelectedIndex;
            string str =""; 
            if (index == 0)
            {
                 str = (string)Text1.Text;
            }
            else if (index == 1)
            {
                 str = (string)Text2.Text;
            }
            else if (index == 2)
            {
                 str = (string)Text3.Text;
            }
            MessageBox.Show(str);
          //  listBox1.SelectedIndex = -1;            
        }

通过以上代码,在我选择了一个项目之后,蓝色条显示在所选项目中,以避免我给出了listBox1.SelectedIndex = -1;。 如果我给这个函数执行两次。消息框显示空字符串。 为什么会这样?我怎么能避免这种情况?

1 个答案:

答案 0 :(得分:0)

尝试这样的构造:

listBox1.SelectionChanged -= listBox1_SelectionChanged;
listBox1.SelectedIndex = -1;
listBox1.SelectionChanged += listBox1_SelectionChanged;

listBox1.SelectedIndex正在调用SelectionChanged事件,因此调用此函数两次。