public void CreateTab( ViewModelBase viewModel ) { viewModel.MainWindowViewModel = this; viewModel.RequestClose += delegate(object sender, EventArgs e) { this.CloseTab(viewModel); }; this.Tabs.Add( viewModel ); this.SetActiveTab( viewModel ); }
/// <summary> /// /// </summary> /// <param name="viewModel"></param> public void ShowDialog(ViewModelBase viewModel) { Window window = GetWindow(viewModel); viewModel.RequestClose += delegate(object sender, EventArgs e) { window.Close(); }; window.ShowDialog(); }
private Window GetWindow(ViewModelBase viewModel) { object target = Activator.CreateInstance( viewMapper.ResolveView( viewModel ) ); Window window = target as Window; window.DataContext = viewModel; return window; }
void CloseTab(ViewModelBase tabViewModel) { //tabViewModel.Dispose(); this.Tabs.Remove(tabViewModel); }
void SetActiveTab(ViewModelBase workspace) { if (!this.Tabs.Contains(workspace)) return; ICollectionView collectionView = CollectionViewSource.GetDefaultView(this.Tabs); if (collectionView != null) collectionView.MoveCurrentTo(workspace); }
/// <summary> /// /// </summary> /// <param name="viewModel"></param> public void Show(ViewModelBase viewModel) { GetWindow(viewModel).Show(); }