Если я вас правильно понимаю, вам нужна главная страница со списком данных, а затем страница с подробностями, содержимое которой зависит от элемента, который вы щелкнули на главной странице.Тогда ответ на ваш вопрос - «да».Есть несколько способов достичь этого, некоторые из которых включают глобальные переменные, пользовательский сервис навигации, сохранение значения в изолированном хранилище и так далее.Мое личное предпочтение состоит в том, чтобы использовать контекст NavigationService
и передавать идентификатор или индекс в строке запроса для целевой страницы.
Ваш вызов для перехода на страницу сведений затем выглядит следующим образом:
Application.Current.Navigate(string.Format("/Views/DetailsView.xaml?id={0}", id));
На целевой странице вы переопределяете обработчик OnNavigatedTo
, чтобы получить переданное вами значение и затем обработать его соответствующим образом (то есть поискать значение в вашей базе данных или извлечь его из коллекции данных).
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (this.NavigationContext.QueryString.ContainsKey("id"))
{
var id = this.NavigationContext.QueryString["id"];
// TODO: Do what you need to with the ID.
}
else
{
// I use this condition to handle creating new items.
}
}