public MainViewModel( WelcomeViewModel welcomeViewModel, ConnectingViewModel connectingViewModel, ContactsViewModel contactsViewModel, SettingsViewModel settingsViewModel, CoreDispatcher uiDispatcher) : base(uiDispatcher) { if (welcomeViewModel == null || connectingViewModel == null || contactsViewModel == null || settingsViewModel == null || uiDispatcher == null) { throw new ArgumentNullException(); } WelcomeViewModel = welcomeViewModel; ConnectingViewModel = connectingViewModel; ContactsViewModel = contactsViewModel; SettingsViewModel = settingsViewModel; WelcomeViewModel.OnCompleted += WelcomeCompleted; ConnectingViewModel.OnRegistered += ConnectingViewModel_OnRegistered; ConnectingViewModel.OnRegistrationFailed += ConnectingViewModel_OnRegistrationFailed; ShowSettingsCommand = new DelegateCommand(() => IsSettingsVisible = true); WelcomeViewModel.OnShowSettings += () => IsSettingsVisible = true; ContactsViewModel.OnShowSettings += () => IsSettingsVisible = true; ConnectingViewModel.OnShowSettings += () => IsSettingsVisible = true; SettingsViewModel.OnClose += SettingsViewModelOnClose; SettingsViewModel.OnRegistrationSettingsChanged += RegistrationSettingChanged; }
private async void WelcomeCompleted() { ApplicationView.GetForCurrentView().Title = WelcomeViewModel.Name; await ConnectingViewModel.EstablishConnection(); }
private async void RegistrationSettingChanged() { IsActive = false; await ConnectingViewModel.SwitchSignalingServer(); }