示例#1
0
        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);
        }
示例#2
0
        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);
        }