diff --git a/Source/Views/MultiPageViewForm.cs b/Source/Views/MultiPageViewForm.cs index 76174dc..30e0064 100644 --- a/Source/Views/MultiPageViewForm.cs +++ b/Source/Views/MultiPageViewForm.cs @@ -66,7 +66,7 @@ namespace Nuclex.Windows.Forms.Views { /// Whether page views should be kept alive and reused public MultiPageViewForm(IWindowManager windowManager, bool cachePageViews = false) { this.windowManager = windowManager; - this.createViewMethod = typeof(IWindowManager).GetMethod("CreateView"); + this.createViewMethod = typeof(IWindowManager).GetMethod(nameof(IWindowManager.CreateView)); if(cachePageViews) { this.cachedViews = new Dictionary(); @@ -191,8 +191,7 @@ namespace Nuclex.Windows.Forms.Views { ) { base.OnViewModelPropertyChanged(sender, arguments); - MultiPageViewModel anyMultiPageViewModel; - if(arguments.AreAffecting(nameof(anyMultiPageViewModel.ActivePage))) { + if(arguments.AreAffecting(nameof(MultiPageViewModel.ActivePage))) { var viewModelAsMultiPageviewModel = DataContext as IMultiPageViewModel; if(viewModelAsMultiPageviewModel != null) { activatePageView(viewModelAsMultiPageviewModel.GetActivePageViewModel()); @@ -200,6 +199,23 @@ namespace Nuclex.Windows.Forms.Views { } } + /// Currently active page view control + protected Control ActivePageView { + get { return this.activePageView; } + } + + /// The view model running the currently active page + protected object ActivePageViewModel { + get { + var activePageViewAsView = this.activePageView as IView; + if(activePageViewAsView == null) { + return null; + } else { + return activePageViewAsView.DataContext; + } + } + } + /// Activates the page view for the specified page view model /// /// Page view model for which the page view will be activated