internal override bool ShouldRemoveNode(DocumentCompositeNode documentNode) { if (documentNode.Type.RuntimeType == typeof(DesignDataExtension)) { return(PathHelper.ArePathsEquivalent(DesignDataInstanceBuilder.GetSourceFilePath(documentNode), this.designDataFile)); } return(false); }
private static IType GetDesignDataType(DocumentCompositeNode designDataNode) { if (designDataNode.DocumentRoot == null) { return((IType)null); } IType type = (IType)null; IDocumentRoot sourceXamlDocument = DesignDataInstanceBuilder.GetSourceXamlDocument(designDataNode); if (sourceXamlDocument != null && sourceXamlDocument.RootNode != null) { type = DataContextHelper.GetDataType(sourceXamlDocument.RootNode); } return(type); }
public static IProjectItem GetDesignDataFile(DocumentNode documentNode) { IProject project = (IProject)((IServiceProvider)documentNode.TypeResolver).GetService(typeof(IProject)); string path = (string)null; if (documentNode.Type.RuntimeType == typeof(DesignDataExtension)) { path = DesignDataInstanceBuilder.GetSourceFilePath((DocumentCompositeNode)documentNode); } else if (documentNode.Parent == null) { path = documentNode.Context.DocumentUrl; } if (!string.IsNullOrEmpty(path)) { IProjectItem projectItem = project.FindItem(DocumentReference.Create(path)); if (projectItem != null && DocumentContextHelper.GetDesignDataMode(projectItem) != DesignDataMode.None) { return(projectItem); } } return((IProjectItem)null); }