Вы можете просто подключить до прослушивателя событий либо tap
события на каждый ListBoxItem
(т.е. на содержащий grid
/canvas
/что угодно) или на SelectionChanged
событии на самом списке.
Пример:
<ListBox:ItemTemplate>
<DataTemplate>
<Grid Tap="Tap_Handler">
// .. your text or whatever goes here
</Grid>
</DataTemplate>
</ListBox:ItemTemplate>
и код-за магии:
public void Tap_Handler(object sender, GestureEventArgs e)
{
var item = (sender as Grid).DataContext as City; // Given you have City objects in your list
NavigationService.Navigate(new Uri("/View/City.xaml?id=" + item.Id, UriKind.Relative);
}
Должно быть что-то подобное, если это не работает прямо из коробки.
Большое спасибо. Оно работает!! только с небольшими изменениями. Вместо NavigationContext.Navigate я использовал NavigationService.Navigate. Отредактируйте его. – user1538895
Но как я могу использовать это для перехода на разные страницы. Например, у меня есть City1.xaml City2.xaml и City3.xaml. Как я могу перейти на эти страницы, когда пользователь clciks City1, City2 и City3, соответственно, в моем спискеselector – user1538895
@ user1538895, который звучал как плохое решение, но если вы настаиваете на этом, вы в основном просто вставляете идентификатор или что-то другое, что у вас есть в другом расположение: «/ View/City» + item.Id + «.xaml». –