public MainViewModel(INavigationViewModel navigationViewModel,
                             IIndex <string, IDetailViewModel> detailViewModelCreator,
                             IEventAggregator eventAggregator,
                             IMessageDialogService messageDialogService)
        {
            _detailViewModelCreator = detailViewModelCreator;
            _messageDialogService   = messageDialogService;

            DetailViewModels = new ObservableCollection <IDetailViewModel>();

            NavigationViewModel = navigationViewModel;

            int nextNewItemId = 0;

            CreateNewDetailCommand = new DelegateCommand <Type>(viewModelType => OnOpenDetailView(new OpenDetailViewEventArgs
            {
                Id            = nextNewItemId--,
                ViewModelName = viewModelType.Name
            }));

            OpenSingleDetailViewCommand = new DelegateCommand <Type>(OnOpenSingleDetailViewExecute);

            eventAggregator
            .GetEvent <OpenDetailViewEvent>()
            .Subscribe(OnOpenDetailView);
            eventAggregator.GetEvent <AfterDetailDeletedEvent>()
            .Subscribe(args => RemoveDetailViewModel(args.Id, args.ViewModelName));
            eventAggregator.GetEvent <AfterDetailClosedEvent>()
            .Subscribe(args => RemoveDetailViewModel(args.Id, args.ViewModelName));
        }
        public MainViewModel(INavigationViewModel navigationViewModel, /*IFriendDataService friendDataService*/

                                                                       /*Func<IFriendDetailViewModel> friendDetailViewModelCreator,
                                                                        * Func<IMeetingDetailViewModel> meetingDetailViewModelCreator,*/
                             IIndex <string, IDetailViewModel> detailViewModelCreator,
                             IEventAggregator eventAggregator,
                             IMessageDialogService messageDialogService)
        {
            _eventAggregator        = eventAggregator;
            _detailViewModelCreator = detailViewModelCreator;
            //_friendDetailViewModelCreator = friendDetailViewModelCreator;
            //_meetingDetailViewModelCreator = meetingDetailViewModelCreator;
            _eventAggregator.GetEvent <OpenDetailViewEvent>()
            .Subscribe(OnOpenDetailView);
            _messageDialogService = messageDialogService;
            _eventAggregator.GetEvent <AfterDetailDeletedEvent>().Subscribe(AfterDetailDeleted);
            _eventAggregator.GetEvent <AfterDetailClosedEvent>()
            .Subscribe(AfterDetailClosed);

            DetailViewModels = new ObservableCollection <IDetailViewModel>();

            CreateNewDetailCommand      = new DelegateCommand <Type>(OnCreateNewDetailExecute);
            OpenSingleDetailViewCommand = new DelegateCommand <Type>(OnOpenSingleDetailViewExecute);

            NavigationViewModel = navigationViewModel;

            //Friends = new ObservableCollection<Friend>();   // Inicialize collection that implement INotifyPropertyChanged interface
            //_friendDataService = friendDataService;         // Load data from Friend data service
        }
Beispiel #3
0
        /// <summary>
        /// Shows the given window instance
        /// </summary>
        public void Show(IWindow window)
        {
            this.InvokeAsynchronouslyInBackground
            (
                () =>
            {
                WindowElement element = window as WindowElement;

                this.desktop.AddElement(element);

                element.Show();

                this.InvokeAsynchronouslyInBackground
                (
                    () =>
                {
                    if (element.DataContext is INavigationViewModel)
                    {
                        INavigationViewModel windowViewModel = element.DataContext as INavigationViewModel;

                        ((IClosableViewModel)windowViewModel).Title = element.Title;

                        this.Windows.Add(windowViewModel);
                    }
                }
                );
            }
            );
        }
Beispiel #4
0
        public MainViewModel(INavigationViewModel navigationViewModel,
                             IIndex <string, IDetailViewModel1> detailViewModelCreator,
                             IEventAggregator eventAggregator,
                             IMessageDialogService messageDialoService)
        {
            _messageDialoService    = messageDialoService;
            _eventAggregator        = eventAggregator;
            _detailViewModelCreator = detailViewModelCreator;

            DetailViewModels = new ObservableCollection <IDetailViewModel1>();

            _eventAggregator.GetEvent <OpenDetailViewEvent>()
            .Subscribe(OnOpenDetailView);

            CreateNewDetailCommand = new DelegateCommand <Type>(OnCreateNewDetailExecute);

            OpenSingleDetailViewCommand = new DelegateCommand <Type>(OnOpenSingleDetailViExecute);

            _eventAggregator.GetEvent <AfterDetailDeletedEvent>()
            .Subscribe(AfterDetailDeleted);

            _eventAggregator.GetEvent <AfterDetailCloseEvent>()
            .Subscribe(AfterDetailClosed);

            NavigationViewModel = navigationViewModel;
        }
Beispiel #5
0
        public MainViewModel(INavigationViewModel navigationViewModel,
                             IIndex <string, IDetailViewModel> detailViewModelCreator,
                             IEventAggregator eventAggregator,
                             IMessageDialogService messageDialogservice)
        {
            _detailViewModelCreator = detailViewModelCreator;

            _eventAggregator = eventAggregator;

            _messageDialogservice = messageDialogservice;

            _eventAggregator.GetEvent <OpenDetailViewEvent>()
            .Subscribe(OnOpenDetailEvent);
            _eventAggregator.GetEvent <AfterDetailDeletedEvent>()
            .Subscribe(AfterDetailDeleted);
            _eventAggregator.GetEvent <AfterDetailClosedEvent>()
            .Subscribe(AfterDetailClosed);
            _eventAggregator.GetEvent <EditVisuraEvent>()
            .Subscribe(EditVisura);
            _eventAggregator.GetEvent <VisuraSavedEvent>()
            .Subscribe(VisuraSaved);

            DetailViewModels = new ObservableCollection <IDetailViewModel>();

            NavigationViewModel = navigationViewModel;

            CreateNewDetailCommand = new DelegateCommand <Type>(OnCreateNewDetailExecute);

            OpenSingleDetailViewCommand = new DelegateCommand <Type>(OnOpenSingleDetailExecute);

            SettingsCommand = new DelegateCommand(OnSettingsExecute);
        }
 public MainViewModel(
     INavigationViewModel navigationViewModel,
     IFriendDetailViewModel friendDetailViewModel)
 {
     NavigationViewModel   = navigationViewModel;
     FriendDetailViewModel = friendDetailViewModel;
 }
Beispiel #7
0
        public FriendMainViewModel(
            INavigationViewModel navigationViewModel,
            Func <IFriendDetailViewModel> friendDetailViewModelCreator,
            Func <IMeetingDetailViewModel> meetingDetailViewModelCreator,
            Func <IProgrammingLanguageDetailViewModel> programmingLanguageDetailViewModelCreator,
            IEventAggregator eventAggregator,
            IMessageDialogService messageDialogService)
        {
            _eventAggregator = eventAggregator;
            _friendDetailViewModelCreator              = friendDetailViewModelCreator;
            _meetingDetailViewModelCreator             = meetingDetailViewModelCreator;
            _programmingLanguageDetailViewModelCreator = programmingLanguageDetailViewModelCreator;
            _messageDialogService = messageDialogService;

            DetailViewModels = new ObservableCollection <IDetailViewModel>();

            _eventAggregator.GetEvent <OpenDetailViewEvent>()
            .Subscribe(OnOpenDetailView);

            _eventAggregator.GetEvent <AfterDetailDeletedEvent>()
            .Subscribe(AfterDetailDeleted);

            _eventAggregator.GetEvent <AfterDetailClosedEvent>()
            .Subscribe(AfterDetailClosed);

            CreateNewDetailCommand = new DelegateCommand <Type>(
                OnCreateNewDetailExecute);

            OpenSingleDetailViewCommand = new DelegateCommand <Type>(
                OnOpenSingleDetailExecute);

            NavigationViewModel = navigationViewModel;
        }
        public void PresentAsNavigatableMainPage(INavigationViewModel viewModel)
        {
            var            page = _viewLocator.CreateAndBindPageFor(viewModel);
            NavigationPage newNavigationPage = new NavigationPage(page);

            _presentationRoot.MainPage = newNavigationPage;
        }
Beispiel #9
0
        public MainViewModel(INavigationViewModel navigationViewModel,
                             IIndex <string, IDetailViewModel> detailViewModelCreator,
                             IEventAggregator eventAggregator,
                             IMessageDialogService messageDialogService,
                             IProviderRepository providerRepository)
        {
            _eventAggregator        = eventAggregator;
            _detailViewModelCreator = detailViewModelCreator;
            _messageDialogService   = messageDialogService;
            _providerRepository     = providerRepository;

            DetailViewModels = new ObservableCollection <IDetailViewModel>();

            _eventAggregator.GetEvent <OpenDetailViewEvent>()
            .Subscribe(OnOpenDetailView);
            _eventAggregator.GetEvent <AfterDetailDeletedEvent>()
            .Subscribe(AfterDetailDeleted);
            _eventAggregator.GetEvent <AfterDetailClosedEvent>()
            .Subscribe(AfterDetailClosed);

            CreateNewDetailCommand      = new DelegateCommand <Type>(OnCreateNewDetailExecute);
            OpenSingleDetailViewCommand = new DelegateCommand <Type>(OpenSingleDetailViewExecute);
            ExportCommand       = new DelegateCommand(OnExportExecute);
            ImportCommand       = new DelegateCommand(OnImportExecute);
            AppExitCommand      = new DelegateCommand(AppExitExecute);
            NavigationViewModel = navigationViewModel;
        }
Beispiel #10
0
        public DsfActivityDropViewModel(INavigationViewModel navigationViewModel, enDsfActivityType dsfActivityType)
        {
            NavigationViewModel = navigationViewModel;
            ActivityType        = dsfActivityType;

            Init();
            EventPublishers.Aggregator.Subscribe(this);
        }
Beispiel #11
0
 public MainViewModel(INavigationViewModel navigationViewModel,
                      IFriendDetailViewModel friendDetailViewModel)
 {
     NavigationViewModel    = navigationViewModel;
     FriendDetailViewModel  = friendDetailViewModel;
     CreateNewFriendCommand = new DelegateCommand(OnCreateNewFriendExecute);
     NavigationViewModel    = navigationViewModel;
 }
 public DsfActivityDropViewModel(INavigationViewModel navigationViewModel, enDsfActivityType dsfActivityType)
 {
     NavigationViewModel = navigationViewModel;
     ActivityType        = dsfActivityType;
     NavigationViewModel.PropertyChanged += CheckIfSelectedItemChanged;
     Init();
     EventPublishers.Aggregator.Subscribe(this);
 }
 public DsfActivityDropViewModel(INavigationViewModel navigationViewModel, enDsfActivityType dsfActivityType)
 {
     NavigationViewModel = navigationViewModel;
     ActivityType = dsfActivityType;
     NavigationViewModel.PropertyChanged+=CheckIfSelectedItemChanged;
     Init();
     EventPublishers.Aggregator.Subscribe(this);
 }
Beispiel #14
0
 public void NavigateAndReset(INavigationViewModel vm)
 {
     using (navigationStack.SuspendNotifications())
     {
         navigationStack.Clear();
         Navigate(vm);
     }
 }
        public NavigationView(INavigationViewModel viewModel)
        {
            InitializeComponent();

            viewModel.SetParentView(this);

            DataContext = viewModel;
        }
Beispiel #16
0
 public MainViewModel(INavigationViewModel navigationViewModel, Func <IFriendEditViewModel> friendEditVmCreator, IEventAggregator eventAggregator)
 {
     NavigationViewModel  = navigationViewModel;
     FriendEditViewModels = new ObservableCollection <IFriendEditViewModel>();
     _friendEditVmCreator = friendEditVmCreator;
     eventAggregator.GetEvent <OpenFriendEditViewEvent>().Subscribe(OnOpenFriendEditView);
     CloseFriendTabCommand = new DelegateCommand(OnCloseFriendTabExecute);
 }
    static GitHubPaneViewModel CreateTarget(
        IViewViewModelFactory viewModelFactory   = null,
        ISimpleApiClientFactory apiClientFactory = null,
        IConnectionManager connectionManager     = null,
        ITeamExplorerContext teamExplorerContext = null,
        IVisualStudioBrowser browser             = null,
        IUsageTracker usageTracker     = null,
        INavigationViewModel navigator = null,
        ILoggedOutViewModel loggedOut  = null,
        INotAGitHubRepositoryViewModel notAGitHubRepository = null,
        INotAGitRepositoryViewModel notAGitRepository       = null,
        ILoginFailedViewModel loginFailed = null)
    {
        viewModelFactory     = viewModelFactory ?? Substitute.For <IViewViewModelFactory>();
        connectionManager    = connectionManager ?? Substitute.For <IConnectionManager>();
        teamExplorerContext  = teamExplorerContext ?? CreateTeamExplorerContext(ValidGitHubRepo);
        browser              = browser ?? Substitute.For <IVisualStudioBrowser>();
        usageTracker         = usageTracker ?? Substitute.For <IUsageTracker>();
        loggedOut            = loggedOut ?? Substitute.For <ILoggedOutViewModel>();
        notAGitHubRepository = notAGitHubRepository ?? Substitute.For <INotAGitHubRepositoryViewModel>();
        notAGitRepository    = notAGitRepository ?? Substitute.For <INotAGitRepositoryViewModel>();
        loginFailed          = loginFailed ?? Substitute.For <ILoginFailedViewModel>();

        if (navigator == null)
        {
            navigator = CreateNavigator();
            navigator.Content.Returns((IPanePageViewModel)null);
        }

        if (apiClientFactory == null)
        {
            var validGitHubRepoClient     = Substitute.For <ISimpleApiClient>();
            var validEnterpriseRepoClient = Substitute.For <ISimpleApiClient>();
            var invalidRepoClient         = Substitute.For <ISimpleApiClient>();

            validGitHubRepoClient.GetRepository().Returns(new Octokit.Repository(1));
            validEnterpriseRepoClient.GetRepository().Returns(new Octokit.Repository(1));
            validEnterpriseRepoClient.IsEnterprise().Returns(true);

            apiClientFactory = Substitute.For <ISimpleApiClientFactory>();
            apiClientFactory.Create(null).ReturnsForAnyArgs(invalidRepoClient);
            apiClientFactory.Create(ValidGitHubRepo).Returns(validGitHubRepoClient);
            apiClientFactory.Create(ValidEnterpriseRepo).Returns(validEnterpriseRepoClient);
        }

        return(new GitHubPaneViewModel(
                   viewModelFactory,
                   apiClientFactory,
                   connectionManager,
                   teamExplorerContext,
                   browser,
                   usageTracker,
                   navigator,
                   loggedOut,
                   notAGitHubRepository,
                   notAGitRepository,
                   loginFailed));
    }
Beispiel #18
0
 public MainViewModel(INavigationViewModel navigationViewModel,
                      Func <IFriendEditViewModel> friendEditVmCreator,
                      IEventAggregator eventAggregator)
 {
     NavigationViewModel  = navigationViewModel;
     FriendEditViewModels = new ObservableCollection <IFriendEditViewModel>();
     _friendEditVmCreator = friendEditVmCreator;
     eventAggregator.GetEvent <OpenFriendEditViewEvent>().Subscribe(OnOpenFriendEditView); //ad 2
 }
Beispiel #19
0
 public ShellViewModel(INavigationViewModel navigation, ISearchViewModel search, IArtViewModel art, IStatusViewModel status, IActionTabsViewModel action_tabs)
 {
     Navigation = navigation;
     Search     = search;
     Art        = art;
     Status     = status;
     ActionTabs = action_tabs;
     Navigation.Events.Subscribe(ActionTabs);
 }
Beispiel #20
0
 public MainWindowViewModel(IWindowService windowService, INavigationViewModel navigation, INavigationService navigationService)
 {
     TopButtons = new ObservableCollection <ButtonViewModel>();
     TopButtons.Add(new ButtonSystemViewModel(Make.UICommand.Do(() => navigationService.NavigateTo <SettingsViewModel, SettingsView>()), "SETTINGS"));
     WindowCloseCommand    = Make.UICommand.Do(() => CloseWindow(windowService));
     WindowMaximizeCommand = Make.UICommand.Do(() => MaximizeWindow(windowService));
     WindowMinimizeCommand = Make.UICommand.Do(() => MinimizeWindow(windowService));
     this.Navigation       = navigation;
 }
Beispiel #21
0
        public MainViewModel(INavigationViewModel navigationViewModel,
                             Func <IFriendDetailViewModel> friendDetailViewModelCreator,
                             IEventAggregator eventAggregator)
        {
            _eventAggregator = eventAggregator;
            _friendDetailViewModelCreator = friendDetailViewModelCreator;
            _eventAggregator.GetEvent <OpenFriendDetailViewEvent>().Subscribe(OnOpenFriendView);

            NavigationViewModel = navigationViewModel;
        }
 public ResourcePickerDialog(enDsfActivityType activityType, IEnvironmentRepository environmentRepository, IEventAggregator eventPublisher, IAsyncWorker asyncWorker, bool isFromDrop, IStudioResourceRepository studioResourceRepository, IConnectControlSingleton connectControlSingleton)
 {
     VerifyArgument.IsNotNull("environmentRepository", environmentRepository);
     VerifyArgument.IsNotNull("eventPublisher", eventPublisher);
     VerifyArgument.IsNotNull("asyncWorker", asyncWorker);
     VerifyArgument.IsNotNull("connectControlSingleton", connectControlSingleton);
     _studio = studioResourceRepository;
     _navigationViewModel = new NavigationViewModel(eventPublisher, asyncWorker, null, environmentRepository, studioResourceRepository,connectControlSingleton, () => {}, isFromDrop, activityType);
     _activityType = activityType;
 }
Beispiel #23
0
        public ProjectsViewModel(INavigationViewModel navigationModel, Func <IProjectDetailViewModel> projectDetailViewModelCreator)
        {
            _projectDetailViewModelCreator = projectDetailViewModelCreator;

            Title = "Projects";

            ProjectNavigationViewModel = navigationModel;

            EventAggregator.GetEvent <OpenDetailViewEvent>().Subscribe(OnOpenDetailView);
        }
Beispiel #24
0
        /**
         * The constructor
         */
        public MainViewModel(INavigationViewModel navigationViewModel,

                             IEventAggregator eventAggregator,
                             IMessageDialogService messageDialogService,
                             IIndex <string, IDetailViewModel> detailViewModelCreator)
        {
            NavigationViewModel     = navigationViewModel;
            _eventAggregator        = eventAggregator;
            _messageDialogService   = messageDialogService;
            _detailViewModelCreator = detailViewModelCreator;

            /**
             * Subscribe to OpenDetailViewEvent : this event will publish from NavigationItemViewModel=>OpenDetailViewCommand
             * and we will use it to create a new DetailViewModel to DetailViewModels collection [see definition below]
             */
            DetailViewModels = new ObservableCollection <IDetailViewModel>();
            _eventAggregator.GetEvent <OpenDetailViewEvent>()
            .Subscribe(OnOpenDetailView);

            /**
             * Subscribe to AfterDetailDeletedEvent : this event will publish from DetailViewModelBase => RaisDetailDeletedEvent
             *      Which related to DeleteCommand inside it
             *      Note : {DetailViewModelBase class} is The main Parent of all DetialViewModels => [Model]DetailViewModel
             *          So all those subClasses which a Backend of the view {DataContext} will rais this event
             *          when DeleteCommand executed
             */
            _eventAggregator.GetEvent <AfterDetailDeletedEvent>()
            .Subscribe(AfterDetailDeleted);

            /**
             * Like Previous [AfterDetailDeletedEvent] but related to [CloseDetailViewCommand]
             */
            _eventAggregator.GetEvent <AfterDetailClosedEvent>()
            .Subscribe(AfterDetailClosed);

            /**
             * Initialize CreateNewDetailCommand with generic type of Type [C# Type]
             * we make this generic because we will pass the type of the DetailViewModel we need to create it from
             * The View [MainWindow] directly as CommandParameter
             *      eg. CommandParameter="{x:Type viewModelRepresent:FriendDetailViewModel}
             *
             * Also notic the way we implement OnCreateNewDetailExecute : will allow to add multible
             * new windows/[view-ViewModel]s at the same time
             */
            CreateNewDetailCommand = new DelegateCommand <Type>(OnCreateNewDetailExecute);

            /**
             * Initialize OpenSingleDetailViewCommand
             * the difference between this and CreateNewDetailCommand : that this will not allow
             * to initialize many Windows[view-model]s with the same type
             * so we should use it when we need to restrict user to just show single view from the type we want
             */
            OpenSingleDetailViewCommand = new DelegateCommand <Type>(OnOpenSingleDetailViewExecute);
        }
Beispiel #25
0
        public MainViewModel(INavigationViewModel navigationViewModel, Func <ISongDetailViewModel> songDetailViewModelCreator, IEventAggregator eventAggregator)
        {
            _eventAggregator            = eventAggregator;
            _songDetailViewModelCreator = songDetailViewModelCreator;
            _eventAggregator.GetEvent <OpenSongDetailViewEvent>().Subscribe(OnOpenSongDetailView);
            _eventAggregator.GetEvent <AfterSongDeletedEvent>().Subscribe(AfterSongDeleted);

            CreateNewSongCommand = new DelegateCommand(OnCreateNewSongExecute);

            NavigationViewModel = navigationViewModel;
        }
 public async Task NavigateTo(INavigationViewModel viewModel)
 {
     try
     {
         var page = _viewLocator.CreateAndBindPageFor(viewModel);
         await Navigator.PushAsync(page);
     }
     catch (Exception ex)
     {
     }
 }
 public ShellViewModel(
     IEventAggregator eventAggregator,
     INavigationViewModel navigationViewModel,
     ILoginViewModel loginViewModel)
 {
     CurrentModule       = loginViewModel as IModule;
     EventAggregator     = eventAggregator;
     NavigationViewModel = navigationViewModel;
     LoginViewModel      = loginViewModel;
     EventAggregator.Subscribe(this);
 }
        public MainViewModel(INavigationViewModel navigationViewModel, Func <IFriendDetailViewModel> friendDetailViewModelCreator, IEventAggregator eventAggregator, IMessageDialogService messageDialogService)
        {
            this.messageDialogService         = messageDialogService;
            this.eventAggregator              = eventAggregator;
            this.NavigationViewModel          = navigationViewModel;
            this.friendDetailViewModelCreator = friendDetailViewModelCreator;
            this.eventAggregator.GetEvent <OpenFriendDetailViewEvent>().Subscribe(OnOpenFriendDetailView);
            this.eventAggregator.GetEvent <AfterFriendDeletedEvent>().Subscribe(AfterFriendDeleted);

            CreateNewFriendCommand = new DelegateCommand(OnCreateNewFriendExecute);
        }
Beispiel #29
0
 public MainViewModel(INavigationViewModel navigationViewModel,
                      Func <IFriendEditViewModel> friendEditViewModelFactory,
                      IEventAggregator eventAggregator)
 {
     NavigationViewModel         = navigationViewModel;
     _friendEditViewModelFactory = friendEditViewModelFactory;
     _eventAggregator            = eventAggregator;
     eventAggregator.GetEvent <OpenFriendEditViewEvent>().Subscribe(OnOpenFriendEditView);
     eventAggregator.GetEvent <FriendDeletedEvent>().Subscribe(OnFriendDeleted);
     CloseFriendTabCommand = new DelegateCommand(OnCloseFriendTabExecute);
     AddFriendCommand      = new DelegateCommand(OnAddFriendExecute);
 }
        public MainViewModel(INavigationViewModel navigationViewModel,
                             IDataRepository dataRepository,
                             IReportViewModel reportDetailViewModel,
                             IEventAggregator eventAggregator)
        {
            _eventAggregator    = eventAggregator;
            _dataRepository     = dataRepository;
            ReportViewModel     = reportDetailViewModel;
            NavigationViewModel = navigationViewModel;

            _eventAggregator.GetEvent <OpenFileReportViewEvent>()
            .Subscribe(AfterOpenReportDetailView);
        }
        public NavigationCommandManager(INavigationViewModel nvm, IEventAggregator events,
                                        params IExportCommandBindings[] additionalBindingExportSource)
            : base(additionalBindingExportSource)
        {
            _nvm = nvm;

            InitCommandManager();
            ToolbarCommands = new ToolbarCommandsHelper(events,
                                                        null,
                                                        null)
            {
            };
        }
 private void RegisterViewModel(INavigationViewModel newViewModel)
 {
     if (newViewModel != null && !newViewModel.RegisteredForNavigation)
     {
         newViewModel.RequestNavigateTo += ViewModel_RequestNavigateTo;
         newViewModel.RequestNavigateBack += ViewModel_RequestNavigateBack;
         newViewModel.RequestNavigateBackTo += newViewModel_RequestNavigateBackTo;
         newViewModel.RequestUnregister += ViewModel_RequestUnregister;
         newViewModel.RegisteredForNavigation = true;
         if (newViewModel is IAsyncViewModel)
         {
             RegisterProgressBar(newViewModel as IAsyncViewModel);
         }
     }
 }
        public MainViewModel(IEventAggregator eventAggregator,
            IMessageDialogService messageDialogService,
            INavigationViewModel navigationViewModel,
            Func<IFriendEditViewModel> friendEditViewModelCreator)
        {
            _eventAggregator = eventAggregator;
            _messageDialogService = messageDialogService;
            _eventAggregator.GetEvent<OpenFriendEditViewEvent>().Subscribe(OnOpenFriendTab);
            _eventAggregator.GetEvent<FriendDeletedEvent>().Subscribe(OnFriendDeleted);

            NavigationViewModel = navigationViewModel;
            _friendEditViewModelCreator = friendEditViewModelCreator;
            FriendEditViewModels = new ObservableCollection<IFriendEditViewModel>();
            CloseFriendTabCommand = new DelegateCommand(OnCloseFriendTabExecute);
            AddFriendCommand = new DelegateCommand(OnAddFriendExecute);
        }
        private void ViewModelChanged(INavigationViewModel oldViewModel, INavigationViewModel newViewModel)
        {
            if (oldViewModel != null)
            {
                oldViewModel.RequestNavigateTo -= ViewModel_RequestNavigateTo;
                oldViewModel.RequestNavigateBack -= ViewModel_RequestNavigateBack;
            }

            if (newViewModel != null && !newViewModel.RegisteredForNavigation)
            {
                newViewModel.RequestNavigateTo += ViewModel_RequestNavigateTo;
                newViewModel.RequestNavigateBack += ViewModel_RequestNavigateBack;
                newViewModel.RegisteredForNavigation = true;
            }

            DataContext = newViewModel;
        }
Beispiel #35
0
 private void RegisterViewModel(INavigationViewModel newViewModel)
 {
     if (newViewModel != null && !newViewModel.RegisteredForNavigation)
     {
         newViewModel.RequestNavigateTo += ViewModel_RequestNavigateTo;
         newViewModel.RequestNavigateBack += ViewModel_RequestNavigateBack;
         newViewModel.RequestNavigateBackTo += newViewModel_RequestNavigateBackTo;
         newViewModel.RequestUnregister += ViewModel_RequestUnregister;
         if (newViewModel.SupportOrientation)
         {
             OrientationChanged += NavigationPage_OrientationChanged;
         }
         newViewModel.RegisteredForNavigation = true;
         
         if (newViewModel is IAsyncViewModel)
         {
             RegisterProgressBar(newViewModel as IAsyncViewModel);
         }
     }
 }
Beispiel #36
0
        private void UnregisterViewModel(INavigationViewModel oldViewModel)
        {
            if (oldViewModel != null && !oldViewModel.KeepRegistrationsAlive)
            {
                oldViewModel.RequestNavigateTo -= ViewModel_RequestNavigateTo;
                oldViewModel.RequestNavigateBack -= ViewModel_RequestNavigateBack;
                oldViewModel.RequestNavigateBackTo -= newViewModel_RequestNavigateBackTo;
                oldViewModel.RequestUnregister -= ViewModel_RequestUnregister;
                OrientationChanged -= NavigationPage_OrientationChanged;
                oldViewModel.RegisteredForNavigation = false;

                if (oldViewModel is IAsyncViewModel)
                {
                    UnregisterProgressBar(oldViewModel as IAsyncViewModel);
                }
            }
        }
Beispiel #37
0
 private void ViewModelChanged(INavigationViewModel oldViewModel, INavigationViewModel newViewModel)
 {
     UnregisterViewModel(oldViewModel);
     RegisterViewModel(newViewModel);
     DataContext = newViewModel;
 }
		public NavigationView(INavigationViewModel viewModel)
		{
			InitializeComponent();
			viewModel.View = this;
		}