2012-11-30 54 views
3

在我的Windows Phone 7應用程序中,我有許多列表視圖。每個listViewItem都有一個單擊事件(通過在我的xaml中將'selectionChanged'屬性設置爲listBox')。現在發生了一件非常奇怪的事情:列表項在第二次單擊事件時未響應

當我點擊列表框中的一個項目時第一次一切順利,在這種情況下,用戶會被帶到另一個屏幕。當我從那個屏幕回到列表框時,我選擇了非常相同的listboxitem,但是這次事件沒有註冊,沒有任何反應...

然後我首先必須點擊另一個項目,讓那些項目甚至火,那麼我只能點擊第一項。換句話說,我無法連續兩次爲listItem觸發一個click事件。我想這是因爲列表框上的事件處理程序說'onSelectionChanged',如果你選擇了相同的項目,選擇沒有技術上的變化。

那麼,我可以在我的列表框上使用哪些其他eventHandling屬性來在其項目上註冊選擇事件?

感謝您的幫助!

回答

3

AFAIK,Theres是沒有這樣的事件。所以,解決辦法是,

在第一頁的OnNavigatedTo事件處理程序,設置selectedIndex爲-1

YourListBox.SelectedIndex = -1; 

雖然這樣做,使一個小的修改,您Selection_Changed處理

void Selection_Changed(...) 
{ 
    if(YourListBox.SelectedIndex == -1) 
    return; 
    //rest of your code 
} 
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; 
} 
相關問題