Exemplo n.º 1
0
        public void LoadData(object dataInstance)
        {
            var helper = ((OverviewDataHelper)dataInstance);

            using (mailbox.Messages.ReaderLock)
                SelectedMessage =
                    mailbox.Messages.FirstOrDefault(
                        c => c.MessageId == helper.MessageId);

            if (SelectedMessage == null)
            {
                throw new ApplicationException(
                          String.Format("Message was not found. MessageId = {0}", ((OverviewDataHelper)dataInstance).MessageId));
            }

            // Mark all messages as read
            SelectedMessage.MarkRead();

            OnPropertyChanged("SelectedMessage");
            OnPropertyChanged("Title");

            if (SelectedConversation == null || SelectedMessage.Conversation != SelectedConversation)
            {
                SelectedConversation = SelectedMessage.Conversation;
                OnPropertyChanged("SelectedConversation");

                Messages.Replace(SelectedConversation.Messages);

                if (list != null)
                {
                    list.SelectedItem = SelectedMessage;

                    Dispatcher.BeginInvoke(DispatcherPriority.Input, (Action)(() => list.ScrollIntoView(SelectedMessage)));
                }
            }

            MessageActionsBox.Show(SelectedMessage);
            ThreadView.Show(SelectedMessage);
            UserProfileControl.SourceAddress = SelectedMessage.From;

            FocusHelper.Focus(TabSink);
        }