列表项在第二次单击事件时无响应

时间:2012-11-30 09:24:08

标签: windows-phone-7 xaml event-handling listbox

在我的Windows Phone 7应用程序中,我有许多列表视图。每个listViewItem都有一个click事件(通过在我的xaml中将'selectionChanged'属性设置为listBox)。现在发生了一件非常奇怪的事情:

当我点击列表框中的项目时,第一次一切顺利,在这种情况下,用户将被带到另一个屏幕。当我从那个屏幕返回到列表框时,我选择了相同的listboxitem,但这次事件没有注册,没有任何反应......

然后,我首先必须点击另一个项目,让那些项目甚至开火,然后我才能点击第一项。换句话说,我不能连续两次为listItem触发click事件。我认为这是因为列表框上的事件处理程序显示'onSelectionChanged',如果您选择相同的项目,则选择在技术上没有改变。

那么我可以在列表框中使用其他eventHandling属性来注册其项目上的选择事件?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

AFAIK,Theres不是这样的事件。所以,解决方法是,

在第一页的OnNavigatedTo事件处理程序中,将SelectedIndex设置为-1

YourListBox.SelectedIndex = -1;

在执行此操作时,对Selection_Changed处理程序进行一次小修改

void Selection_Changed(...)
{
   if(YourListBox.SelectedIndex == -1)
    return;
   //rest of your code
}

答案 1 :(得分:3)

在您的情况下,ListBox中的SelectedItem是第一次设置。第二次点击相同的项目,从技术上讲它不是SelectionChanged事件,因此它不会被触发。

在SelectionChanged事件结束时清除SelectedItem会起到作用 以下是可能有用的代码段,

private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    //
    // do your stuff here
    //

    //reset the selection of the sender (ListBox)
    (sender as ListBox).SelectedItem = null;
}