public ViewAndViewModel(
     Window view,
     OverlayViewModelBase viewModel)
 {
     this.View      = view;
     this.ViewModel = viewModel;
 }
 protected void TryAddViewAndViewModel(
     Window window,
     OverlayViewModelBase vm)
 {
     if (window != null && vm != null)
     {
         this.ViewList.Add(new ViewAndViewModel(window, vm));
     }
 }
 protected void CreateView <T>(ref T view, OverlayViewModelBase vm)
     where T : Window, new()
 {
     if (vm != null)
     {
         view = new T()
         {
             DataContext = vm
         };
         vm.View = view;
     }
 }
 public void ShowOverlay(OverlayViewModelBase overlay)
 {
     Overlay.ActivateItem(overlay);
 }
 public void ShowOverlay(OverlayViewModelBase overlay)
 {
     ParentShell.CloseOverlay();
     Overlay.ActivateItem(overlay);
 }