2011-01-20 2 views
1

У меня есть две страницы: P1 и P2.Выбранный элемент в ListBox серый после возврата с другой страницы

В P1,

а) Загрузка данных из IsolatedStorage и DataBinding к listbox1 пройдет в события нажатия кнопки в P1.

б) пользователь может выбрать элемент и будет перемещаться к P2

пример: пользователь может выбрать CarModel_1

в P2: пользователь нажимает клавишу Назад в P2, чтобы вернуться к P1.

Проблема:

Когда returnning от P2, то выбранный элемент в ListBox1 становится серым или не интерактивными, чтобы перейти к P2.

пример: CarModel_1 становится серым или не доступен.

Остальное можно щелкнуть.

Цените свою помощь по этому вопросу.

Благодаря

ответ

1

Один из распространенных способов решения этой проблемы является установка SelectedIndex = -1 для ListBox.

Это можно увидеть в действии, если вы создаете проект Databound по умолчанию.

Это код, который производится.

private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    // If selected index is -1 (no selection) do nothing 
    if (MainListBox.SelectedIndex == -1) 
     return; 

    // Navigate to the new page 
    NavigationService.Navigate(new Uri("/DetailsPage.xaml?selectedItem=" + MainListBox.SelectedIndex, UriKind.Relative)); 

    // Reset selected index to -1 (no selection) 
    MainListBox.SelectedIndex = -1; 
} 

Альтернатива этому заключается в реализации службы жестов, изложенной в этом вопросе.

Is there a click behavior for a list?

+0

@Mick N: Вы знаете, почему такое поведение происходит, если вы не сбросить выбор? Мне любопытно ... – Praetorian

+1

Да, он не будет срабатывать SelectionChanged, если нет «изменения». То, что было бы идеальным, - это событие click/tap, но это кажется недоступным для многих элементов управления (кроме Button). По крайней мере, есть несколько разумных путей. –

+0

@ Мик Н: Спасибо. Кажется, сейчас работает. Я проверю несколько условий на ListBox. – MilkBottle