private void InitializeViewModel() { var attribute = this.GetType().GetCustomAttribute <MvfForm>(); if (attribute == null) { throw new CustomAttributeFormatException($"Could not find {nameof(MvfForm)} attribute over the {this.GetType().Name} form"); } this.ViewModel = MvfLocator.HasViewModel <TViewModel>() ? MvfLocator.GetViewModel <TViewModel>(this) : MvfLocator.CreateViewModel <TViewModel>(this); this.ViewModel.PropertyChanged += OnViewModelPropertyChanged; RaiseViewModelSet(ViewModel); }
public void Navigate <TViewModel>() where TViewModel : IMvfViewModel { if (typeof(IVolatileView).IsAssignableFrom(typeof(TViewModel))) { var form = MvfLocator.CreatePair <TViewModel>(); form.Show(); } else { if (MvfLocator.HasForm <TViewModel>()) { var form = MvfLocator.GetForm <TViewModel>(); form.Show(); } else { var form = MvfLocator.CreatePair <TViewModel>(); form.Show(); } } }