示例#1
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            var navigationArgs = e.Parameter.ToString();

            var loadData = e.NavigationMode != NavigationMode.Back;

            _viewModel  = ServiceLocator.Current.GetInstance <PhotoDetailsViewModel>(loadData);
            DataContext = _viewModel;

            if (loadData)
            {
                if (navigationArgs.Contains(typeof(PhotoDetailsViewModelArgs).Name))
                {
                    var photoDetailsViewModelArgs =
                        SerializationHelper.Deserialize <PhotoDetailsViewModelArgs>(navigationArgs);
                    await _viewModel.LoadState(photoDetailsViewModelArgs);
                }
                else if (navigationArgs.Contains(typeof(PhotoDetailsViewModelPhotoIdArgs).Name))
                {
                    var photoDetailsViewModelIdArgs =
                        SerializationHelper.Deserialize <PhotoDetailsViewModelPhotoIdArgs>(navigationArgs);
                    await _viewModel.LoadState(photoDetailsViewModelIdArgs);
                }
            }
        }