Inheritance: GalaSoft.MvvmLight.Messaging.MessageBase
        /// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="navigationParameter">The parameter value passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
        /// </param>
        /// <param name="pageState">A dictionary of state preserved by this page during an earlier
        /// session.  This will be null the first time a page is visited.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
            if (pageState != null && pageState.ContainsKey("SelectedCommentTreeMessage"))
            {
                _selectedCommentTree = pageState["SelectedCommentTreeMessage"] as SelectCommentTreeMessage;
                Messenger.Default.Send<SelectCommentTreeMessage>(_selectedCommentTree);
            }
            else if (navigationParameter != null && navigationParameter is SelectCommentTreeMessage)
            {
                _selectedCommentTree = navigationParameter as SelectCommentTreeMessage;
                Messenger.Default.Send<SelectCommentTreeMessage>(_selectedCommentTree);
            }

            RegisterShareSourceContract();
        }
示例#2
0
 private async void GotoFullLinkImpl()
 {
     MessengerInstance.Send<LoadingMessage>(new LoadingMessage { Loading = true });
     var linkThing = await _redditService.GetThingById(_comment.Data.LinkId);
     var commentTree = new SelectCommentTreeMessage { Context = 3, LinkThing = new TypedThing<Link>(linkThing) };
     MessengerInstance.Send<LoadingMessage>(new LoadingMessage { Loading = false });
     _navigationService.Navigate(_dynamicViewLocator.CommentsView, commentTree);
 }
示例#3
0
        private async void GotoContextImpl()
        {
            try
            {
                if (_comment.Data.ParentId == null)
                    return;

                MessengerInstance.Send<LoadingMessage>(new LoadingMessage { Loading = true });
                var linkThing = new TypedThing<Link>(await _redditService.GetThingById(_comment.Data.LinkId));
                var parentThing = await _redditService.GetLinkByUrl("http://www.reddit.com/" + linkThing.Data.Permalink + _comment.Data.ParentId.Substring(3));
                var commentTree = new SelectCommentTreeMessage { LinkThing = new TypedThing<Link>(parentThing) };
                MessengerInstance.Send<LoadingMessage>(new LoadingMessage { Loading = false });
                _navigationService.Navigate(_dynamicViewLocator.CommentsView, commentTree);
            }
            catch (Exception ex)
            {
                _baconProvider.GetService<INotificationService>().CreateErrorNotification(ex);
            }
        }
		protected override void OnNavigatedTo(NavigationEventArgs e)
		{
			if (e.NavigationMode == NavigationMode.Back)
			{
                
			}
            else if (e.NavigationMode == NavigationMode.Reset)
            {
                //do nothing we have everything we want already here
            }
            else
            {
                if (this.State != null && this.State.ContainsKey("SelectedCommentTreeMessage"))
                {
                    _selectedCommentTree = this.State["SelectedCommentTreeMessage"] as SelectCommentTreeMessage;
                    Messenger.Default.Send<SelectCommentTreeMessage>(_selectedCommentTree);
                }
                else if (!string.IsNullOrWhiteSpace(this.NavigationContext.QueryString["data"]))
                {
                    var unescapedData = HttpUtility.UrlDecode(this.NavigationContext.QueryString["data"]);
                    var deserializedObject = JsonConvert.DeserializeObject<SelectCommentTreeMessage>(unescapedData);
                    if (deserializedObject is SelectCommentTreeMessage)
                    {
                        _selectedCommentTree = deserializedObject as SelectCommentTreeMessage;
                        Messenger.Default.Send<SelectCommentTreeMessage>(_selectedCommentTree);
                    }
                }
                else
                {
                    var notificationService = ServiceLocator.Current.GetInstance<INotificationService>();
                    notificationService.CreateNotification("TLDR; something bad happened, send /u/hippiehunter a PM letting us know what you clicked on");
                }

                RegisterShareSourceContract();
            }
            _viewModelContextService.PushViewModelContext(DataContext as ViewModelBase);
            _smartOfflineService.NavigatedToView(typeof(CommentsView), e.NavigationMode == NavigationMode.New);
		}
 private void OnComentTreeSelection(SelectCommentTreeMessage msg)
 {
     LoadLink(msg.LinkThing, msg.RootComment);
 }