public void ViewClose(ViewModelBase viewModel)
 {
     if(OpenViewModelMapping.ContainsKey(viewModel))
     {
         IChildView childView = OpenViewModelMapping[viewModel];
         childView.Close();
      
         OpenViewModelMapping.Remove(viewModel);
     }
 }
        public void ViewShow(ViewModelBase viewModel)
        {
            if (OpenViewModelMapping.ContainsKey(viewModel))
            {
                throw new ArgumentException("View model is open");
            }

            IChildView childView;
            Type viewModelType = viewModel.GetType();

            childView = ServiceLocator.Current.GetInstance<IChildView>
                (viewModelType.Name.Replace("ViewModel", "View"));

            childView.DataContext = viewModel;
            childView.Show();
            OpenViewModelMapping.Add(viewModel, childView);

          

          
        }
 public void ViewModelClose(ViewModelBase viewModel)
 {
     OnViewModelCloseEvent(viewModel);
 }
 private void OnViewModelCloseEvent(ViewModelBase viewmodel)
 {
     ViewModelCloseDelegate handler = ViewModelCloseEvent;
     if (handler != null) handler(viewmodel);
 }
 public void ViewModelShow (ViewModelBase viewModel)
 {
     OnViewModelShowEvent(viewModel);
     viewModel.Closed += (sender, args) => ViewModelClose((ViewModelBase) sender);
 }