Example #1
0
        private SAThreadViewEventArgs CreateViewmodel(Uri parameter)
        {
            // try and parse a thread page from the html
            ThreadPageMetadata page = MetadataExtensions.ThreadPageFromUri(parameter);

            // since we have a page, create thread metadata from it
            ThreadMetadata thread = new ThreadMetadata()
            {
                ThreadID  = page.ThreadID,
                Title     = page.ThreadTitle,
                PageCount = page.LastPage
            };

            // create binding wrappers
            Data.ThreadDataSource     threadSource = new Data.ThreadDataSource(thread);
            Data.ThreadPageDataObject pageSource   = new Data.ThreadPageDataObject(page);

            // create viewmodel
            ViewModels.ThreadViewModel viewmodel = new ViewModels.ThreadViewModel();
            int pageIndex = pageSource.PageNumber - 1;

            viewmodel.UpdateModel(threadSource);
            viewmodel.Pages[pageIndex] = pageSource;

            // set the current page to page source
            viewmodel.SelectedItem  = viewmodel.Pages[pageIndex];
            viewmodel.SelectedIndex = pageIndex;
            return(new SAThreadViewEventArgs(viewmodel));
        }
        public ThreadViewPage()
        {
            InitializeComponent();

            viewmodel = new ViewModels.ThreadViewModel();
            SetThreadNavCommands(viewmodel);

            _threadStack = new Stack<ViewModels.ThreadViewModel>();

            Commands.EditPostCommand.EditRequested += new ThreadPostRequestEventHandler(OpenEditWindow);
            Commands.ViewSAThreadCommand.ViewThread += OnSAUriLinkSelected;
            Commands.ViewSAThreadCommand.ViewLoading += ViewSAThreadCommand_ViewLoading;
            Commands.ViewSAThreadCommand.ViewFailed += ViewSAThreadCommand_ViewFailed;

            viewmodel.ReadyToBind += OnViewModelReadyToBind;
            viewmodel.UpdateFailed += OnViewModelUpdateFailed;
            Loaded += ThreadViewPage_Loaded;
            threadReplyControl.Loaded += WireThreadReplyControl;
        }
Example #3
0
 public SAThreadViewEventArgs(ViewModels.ThreadViewModel viewmodel)
 {
     Viewmodel = viewmodel;
 }