Windows phone 7 windows phone 7列表框事件混淆

Windows phone 7 windows phone 7列表框事件混淆,windows-phone-7,listbox,Windows Phone 7,Listbox,这个应用程序就像一本小字典。我有一个列表框和一个文本框。列表框中已填充单词,当文本框中有任何条目时,列表框将再次填充以文本框中字母开头的单词。我有一个listbox SelectionChanged事件,当用户单击一个单词时,它的意思就会出现。问题是,当用户从列表中选择一个单词,然后在文本框中键入某个内容时,listBox SelectionChanged事件被称为“我不希望发生这种情况,因为此时我的listBox的选定项为空”。我希望只有当用户从listBox中选择某个内容时才会触发事件。当列

这个应用程序就像一本小字典。我有一个列表框和一个文本框。列表框中已填充单词,当文本框中有任何条目时,列表框将再次填充以文本框中字母开头的单词。我有一个listbox SelectionChanged事件,当用户单击一个单词时,它的意思就会出现。问题是,当用户从列表中选择一个单词,然后在文本框中键入某个内容时,listBox SelectionChanged事件被称为“我不希望发生这种情况,因为此时我的listBox的选定项为空”。我希望只有当用户从listBox中选择某个内容时才会触发事件。当列表框的内容更改时,不应激发它。谢谢

您可以使用

1.if(lstWords.SelectedItem!=null)

2.lstWords.SelectedIndex=-1

例如以下是文本更改事件和列表选择更改事件的源代码

     private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
    {
        try
        {
            if (textBox1.Text.ToString().Equals(""))
            {
                XmlDictionaryRepository test = new XmlDictionaryRepository();
                lstWords.ItemsSource = test.GetWordList(categorySelected,xmlFileName);
            }
            else
            {
                XmlDictionaryRepository test = new XmlDictionaryRepository();
                lstWords.ItemsSource = test.GetMatchWordList(categorySelected, textBox1.Text.ToString(),xmlFileName);
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString(), (((PhoneApplicationFrame)Application.Current.RootVisual).Content).ToString(), MessageBoxButton.OK);
        }
    }

    private void lstWords_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        try
        {
            if (lstWords.SelectedItem != null)
            {             

                string wordSelected = ((Glossy_Test.Dictionary)(lstWords.SelectedItem)).Word;
                if (lstWords.SelectedItem != null)
                {
                    NavigationService.Navigate(new Uri(string.Format("/DescribeWord.xaml?param1={0}&param2={1}", wordSelected, categorySelected), UriKind.Relative));
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString(), (((PhoneApplicationFrame)Application.Current.RootVisual).Content).ToString(), MessageBoxButton.OK);
        }
        finally
        {
            // lstWords.SelectedIndex = -1;
        }

    }