/// <summary> /// Notifies all interested view models of an event that took place. /// </summary> /// <param name="viewModel">The view model.</param> /// <param name="viewModelEvent">The view model event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> /// <exception cref="ArgumentNullException">The <paramref name="viewModel"/> is <c>null</c>.</exception> /// <exception cref="ArgumentNullException">The <paramref name="e"/> is <c>null</c>.</exception> private void NotifyViewModelsOfEvent(IViewModel viewModel, ViewModelEvent viewModelEvent, EventArgs e) { Argument.IsNotNull("viewModel", viewModel); Argument.IsNotNull("e", e); lock (_lock) { var viewModels = (from viewModelKeyValuePair in _interestedViewModels select viewModelKeyValuePair.Value); foreach (var vm in viewModels) { try { var notifyableViewModel = vm as INotifyableViewModel; if (notifyableViewModel != null) { notifyableViewModel.ViewModelEvent(viewModel, viewModelEvent, e); } } catch (Exception ex) { Log.Error(ex, "Failed to let an interested view model know that a view model has changed. Probably the view model is not correctly cleaned up"); } } } }
public void OnViewModelEvent(ViewModelEvent viewModelEvent) { if (viewModelEvent.EventId == ViewModelEvent.RegisteredEventId.FOCUS_SETUP_WIZARD_PROXY_SETTINGS_ADDRESS_TEXT_BOX) { proxyAddressTextBox.Focus(); } }
public void OnViewModelEvent(ViewModelEvent viewModelEvent) { if (viewModelEvent.EventId == ViewModelEvent.RegisteredEventId.FOCUS_SEARCH_TEXT_BOX) { searchTextBox.Focus(); } }
public void OnViewModelEvent(ViewModelEvent viewModelEvent) { if (viewModelEvent.EventId == ViewModelEvent.RegisteredEventId.BRING_TO_FRONT) { Activate(); } }
protected override void OnViewModelEvent(IViewModel viewModel, ViewModelEvent viewModelEvent, System.EventArgs e) { if (viewModel is InterestingViewModel) { ViewModelEvents.Add(viewModelEvent); } }
/// <summary> /// Set the ViewModelBase dependencies. /// </summary> protected override void SetupViewModelBase() { base.SetupViewModelBase(); Log($"Setting up Wpf ViewModelBase."); ViewModelBase.SetContainer(_container); ViewModelEvent.SetViewModelManager(_container.Resolve <IViewModelsManager>()); }
public void OnViewModelEvent(ViewModelEvent viewModelEvent) { if (viewModelEvent.EventId == ViewModelEvent.RegisteredEventId.FOCUS_SQL_QUERY_TEXT_BOX) { Dispatcher.InvokeAsync(() => { sqlQueryTextBox.Focus(); }, DispatcherPriority.ApplicationIdle); } }
public void OnViewModelEvent(ViewModelEvent viewModelEvent) { if (viewModelEvent.EventId == ViewModelEvent.RegisteredEventId.SCROLL_TO_SELECTION) { if (downloaderListBox.SelectedItems.Count > 0) { downloaderListBox.ScrollIntoView(downloaderListBox.SelectedItems[0]); } } }
/// <summary> /// Notifies all interested view models of an event that took place. /// </summary> /// <param name="viewModel">The view model.</param> /// <param name="viewModelEvent">The view model event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> /// <exception cref="ArgumentNullException">The <paramref name="viewModel"/> is <c>null</c>.</exception> /// <exception cref="ArgumentNullException">The <paramref name="e"/> is <c>null</c>.</exception> private void NotifyViewModelsOfEvent(IViewModel viewModel, ViewModelEvent viewModelEvent, EventArgs e) { Argument.IsNotNull("viewModel", viewModel); Argument.IsNotNull("e", e); lock (_lock) { var viewModels = (from viewModelKeyValuePair in _interestedViewModels select viewModelKeyValuePair.Value).ToList(); foreach (var vm in viewModels) { try { var notifyableViewModel = vm as INotifyableViewModel; if (notifyableViewModel != null) { notifyableViewModel.ViewModelEvent(viewModel, viewModelEvent, e); } } catch (Exception ex) { Log.Error(ex, "Failed to let an interested view model know that a view model has changed. Probably the view model is not correctly cleaned up"); } } } }
/// <summary> /// Called when an event for a view model type that the current view model is interested in has been raised. This can /// be accomplished by decorating the view model with the <see cref="InterestedInAttribute"/>. /// </summary> /// <param name="viewModel">The view model.</param> /// <param name="viewModelEvent">The view model event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected virtual void OnViewModelEvent(IViewModel viewModel, ViewModelEvent viewModelEvent, EventArgs e) { }
/// <summary> /// Views the model event. /// </summary> /// <param name="viewModel">The view model.</param> /// <param name="viewModelEvent">The view model event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> /// <remarks> /// This method should only be called by Catel so the <see cref="ManagedViewModel"/> can invoke it. This method is only used as a pass-through /// to the actual <see cref="OnViewModelEvent"/> method. /// </remarks> void INotifyableViewModel.ViewModelEvent(IViewModel viewModel, ViewModelEvent viewModelEvent, EventArgs e) { Log.Debug("A view model ('{0}') the current view model ('{1}') is interested in has raised an event ('{2}')", viewModel.GetType(), GetType(), viewModelEvent.ToString()); OnViewModelEvent(viewModel, viewModelEvent, e); }
public void OnViewModelEvent(ViewModelEvent viewModelEvent) { }