Я реализовал интерфейс INavigationAware и установил сложный объект в navigationContext.NavigationService.Region.Context в методе OnNavigatedFrom (). Теперь на следующей странице я снова реализовал интерфейс INavigationAware, и теперь я проверяю то же значение в OnNavigatedTo (), чтобы получить значение.
Обновление : я отправил ответ с кодом в другом вопросе. Упоминание здесь для справки -
Сначала выведите модель представления из интерфейса INavigationAware -
public class MyViewModel : INavigationAware
{ ...
Затем вы можете реализовать OnNavigatedFrom и установить объект, который вы хотите передать как контекст навигации, следующим образом -
void INavigationAware.OnNavigatedFrom(NavigationContext navigationContext)
{
SharedData data = new SharedData();
...
navigationContext.NavigationService.Region.Context = data;
}
и когда вы хотите получить данные, добавьте следующий фрагмент кода в модель второго представления -
void INavigationAware.OnNavigatedTo(NavigationContext navigationContext)
{
if (navigationContext.NavigationService.Region.Context != null)
{
if (navigationContext.NavigationService.Region.Context is SharedData)
{
SharedData data = (SharedData)navigationContext.NavigationService.Region.Context;
...
}
}
}
надеюсь, это поможет вам всем!