public ShellViewModel(ILog log, IDispatcherSchedulerProvider scheduler, IStandardDialog standardDialog, IToolBarService toolBarService, IMenuService menuService, IMessageStream messageStream, IAppearanceViewModel appearanceViewModel, BindableCollection <IViewModel> itemsCollection, BindableCollection <Link> linkCollection, IUserInteraction userInteraction, Func <IUserInteractionHostViewModel> userInteractionHostViewModelFactory) : base(log, scheduler, standardDialog) { _userInteractionHostViewModelFactory = userInteractionHostViewModelFactory; ToolBarItems = toolBarService.Items; MenuItems = menuService.Items; Items = itemsCollection; TitleLinks = linkCollection; TitleLinks.Add(new Link(scheduler) { DisplayName = "Appearance", Command = new DelegateCommand(() => userInteraction.ShowModalAsync(appearanceViewModel)) }); messageStream.Of <IViewModel>() .ObserveOn(Scheduler.Dispatcher.RX) .Subscribe(x => Items.Add(x)); userInteraction.RegisterHandler(UserInteractionModalHandler); // Dummy menu item to test UserInterations var menuGroupItem = menuService.CreateMenuGroupItem(); menuGroupItem.DisplayName = "Test"; var menuItem = menuService.CreateMenuButtonItem(); menuItem.DisplayName = "User Interactions"; menuItem.Command = new DelegateCommand(() => standardDialog.InformationAsync("Title", "Message") .Do(x => { }, Scheduler.Task.TPL)); menuGroupItem.Items.Add(menuItem); menuService.Items.Add(menuGroupItem); }
public ShellViewModel(ILog log, IDispatcherSchedulerProvider scheduler, IStandardDialog standardDialog, IToolBarService toolBarService, IMenuService menuService, BindableCollection <IViewModel> itemsCollection, BindableCollection <Link> lnkCollection, IMessageStream messageStream, IUserInteraction userInteraction, Func <IUserInteractionHostViewModel> userInteractionHostViewModelFactory) : base(log, scheduler, standardDialog) { _userInteractionHostViewModelFactory = userInteractionHostViewModelFactory; ToolBarItems = toolBarService.Items; MenuItems = menuService.Items; TitleLinks = lnkCollection; Items = itemsCollection; messageStream.Of <IViewModel>() .ObserveOn(Scheduler.Dispatcher.RX) .Subscribe(x => Items.Add(x)); userInteraction.RegisterHandler(UserInteractionModalHandler); }