public MainDockingViewVM(ShellVM shell, CommandBindingCollection commandBindings)
        {
            this.Shell       = shell;
            _commandBindings = commandBindings;

            this.Panels    = new ViewModelMap <PanelInfo, PanelVM>(DockingViewManager.Instance.Panels, p => new PanelVM(p));
            this.Documents = new ViewModelMap <DocumentInfo, DocumentVM>(DockingViewManager.Instance.Documents,
                                                                         d =>
            {
                var document = new DocumentVM(d);
                App.CompositionContainer.SatisfyImportsOnce(document);
                return(document);
            });

            this.Documents.CollectionChanged += Documents_CollectionChanged;

            DockingViewManager.Instance.DocumentSelected += DockingViewManager_DocumentSelected;
            DockingViewManager.Instance.DocumentManager.DocumentsRestored += DocumentManager_DocumentsRestored;

            _commandBindings.Add(new CommandBinding(ApplicationCommands.Close, this.ExecuteCloseCommmand, this.CanExecuteCloseCommand));
        }
 public void CloseDocument(DocumentVM document)
 {
     DockingViewManager.Instance.CloseDocument(document.Document);
 }