簡體   English   中英

將SelectedIndex設置為-1后,如何選擇已選擇的ListBoxItem或突出顯示先前選擇的ListBoxItem?

[英]How to select a ListBoxItem which is already selected OR to highlight previous selected ListBoxItem after setting SelectedIndex to -1?

我正在Windows Phone 7中編程一個簡單的列表框。該列表框包含一些項目,當我單擊任何項​​目時,應用程序將導航到新頁面。

從開始到這里,一切都很好。

但是我希望最終用戶可以再次選擇該項目,從而再次導航到下一頁。 但是,列表框仍然是這樣,不允許我再次選擇已經選擇的項目。

我嘗試這樣做是為了允許再次選擇一個項目。

private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    if(ListBox.SelectedIndex != -1 )
    {
       NavigationService.Navigate(uri);
       ListBox.SelectedIndex = -1; 
    }
}

我已經編輯過ListBoxItemTemplate以突出顯示選定的項目,但是當我使用上面的代碼時,我無法突出顯示選定的項目,因為它改變SelectedIndex的速度太快了。

因此,如何允許用戶選擇一個選定的項目,或者如何突出顯示先前選定的項目。 有什么建議或提示嗎?

編輯:當使用普通的ListBox時,我可以簡單地使用:

listboxitem1.Background = new SolidColorBrush(Color.Blue);`

但是,當我編輯列表框項目的模板時,確實會引發異常,因此我仍然無法執行此操作。

研究實現ListBox上Mouse事件的其他事件處理程序之一。 例如Click事件 您可以通過跟蹤先前選定的索引值來檢測用戶何時單擊列表框而不更改選定的索引。

好了,您可以編輯ListBoxItem的模板,並在列表框項目的正前方添加一個網格。 並綁定此網格的可見性屬性。

此后,您可以根據所選索引更改可見性。 如果您使用帶有列表框的導航,則此方法應能很好地工作。

希望它能起作用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM