private void OnProjectContextDocumentClosedLate(object sender, ProjectDocumentEventArgs e) { List <SceneView> list1 = (List <SceneView>)null; if (this.pendingViewsForClosedDocuments.TryGetValue(e.Document, out list1)) { this.pendingViewsForClosedDocuments.Remove(e.Document); List <SceneView> list2 = (List <SceneView>)null; foreach (SceneView sceneView in list1) { if (ViewUpdateManager.GetDocumentRelation(sceneView, e.Document) == ViewUpdateManager.DocumentRelation.Related) { if (list2 == null) { list2 = new List <SceneView>(); } list2.Add(sceneView); } } if (list2 != null) { this.InvalidateViewsInternal((ICollection <SceneView>)list2); } } SceneView activeView = this.DesignerContext.ActiveView; if (activeView == null) { return; } activeView.RebuildUserControls(e.Document); }
private void ProjectContext_DocumentClosing(object sender, ProjectDocumentEventArgs e) { if (e.Document == null || e.Document.DocumentRoot == null) { return; } this.schemaCache.Clear(e.Document.DocumentRoot); }
private void OnProjectContextDocumentOpened(object sender, ProjectDocumentEventArgs e) { if (e.Document == null || e.Document.DocumentType != ProjectDocumentType.Application && e.Document.DocumentType != ProjectDocumentType.ResourceDictionary) { return; } SceneDocument sceneDocument = e.Document.Document as SceneDocument; if (!Enumerable.Contains <SceneDocument>(sceneDocument.DesignTimeResourceDocuments, sceneDocument)) { return; } this.RefreshViewUpdatesForDesignTimeResources(false); }
private void OnProjectContextDocumentClosedEarly(object sender, ProjectDocumentEventArgs e) { IProjectDocument document = e.Document; SceneDocument sceneDocument = e.Document.Document as SceneDocument; if (sceneDocument == null) { return; } List <SceneView> list1 = (List <SceneView>)null; if (this.primaryViewsForDocument.TryGetValue(sceneDocument, out list1)) { foreach (SceneView sceneView in new List <SceneView>((IEnumerable <SceneView>)list1)) { sceneView.SuspendUpdatesForViewShutdown(); this.Unregister(sceneView); } } List <SceneView> list2 = (List <SceneView>)null; if (!this.relatedViewsForDocument.TryGetValue(sceneDocument, out list2)) { return; } List <SceneView> list3 = new List <SceneView>((IEnumerable <SceneView>)list2); foreach (SceneView sceneView in list3) { ViewUpdateManager.RelatedDocumentTable relatedDocumentTable = this.relatedDocumentsForView[sceneView]; this.UnregisterRelatedDocumentInternal(sceneView, sceneDocument); relatedDocumentTable.Remove(sceneDocument); } List <SceneView> list4; if (!this.pendingViewsForClosedDocuments.TryGetValue(e.Document, out list4)) { this.pendingViewsForClosedDocuments.Add(e.Document, list3); } else { list4.AddRange(Enumerable.Except <SceneView>((IEnumerable <SceneView>)list3, (IEnumerable <SceneView>)list4)); } }