public IDockDocument ShowDocument(string name, CreateDockDocumentDelegate createDockCallback) { IDockDocument doc = null; var avalonDoc = FindAvalonDocument(name); if (avalonDoc == null) { if (String.CompareOrdinal(name, "startPage") != 0 && StartPageDockDocument.GlobalAutoClose) { StartPageDockDocument.GlobalAutoClose = false; CloseDocument("startPage"); } avalonDoc = new DocumentContent() { Name = name }; doc = createDockCallback(avalonDoc, name); BindingExtensions.CreateBinding(doc, "DocumentTitle", avalonDoc, DocumentContent.TitleProperty, BindingMode.OneWay); avalonDoc.Content = doc; avalonDoc.Closing += AvalonDoc_Closing; avalonDoc.Closed += AvalonDoc_Closed; } avalonDoc.Show(dockingManager, false); Dispatcher.BeginInvoke(new NoArgsDelegate(() => { avalonDoc.Manager.ActiveDocument = avalonDoc; }), null); return(doc); }
public IDockDocument ShowDocument(string id, CreateDockDocumentDelegate createDockCallback) { IDockDocument doc = FindDocument(id); if (doc == null) { doc = createDockCallback(null, id); Documents.Add(doc); } ActiveDocument = doc; return(doc); }