public static string GetStringFromExpression(DocumentNode expression, DocumentNode parentNode)
 {
     if (parentNode != null)
     {
         XamlDocument xamlDocument = parentNode.DocumentRoot as XamlDocument;
         if (xamlDocument != null && xamlDocument.DocumentContext != null)
         {
             string str = XamlSerializer.SerializeValue((IDocumentRoot)xamlDocument, (IXamlSerializerFilter) new DefaultXamlSerializerFilter(), expression, CultureInfo.CurrentCulture);
             if (str != null)
             {
                 return(str);
             }
         }
     }
     return(string.Empty);
 }
Beispiel #2
0
        private static bool NodeTreesAreEquivalent(SceneViewModel viewModel, DocumentNode nodeA, DocumentNode nodeB)
        {
            nodeA = nodeA.Clone(viewModel.DocumentRoot.DocumentContext);
            ResourceHelper.StripOffFormatting(nodeA);
            nodeB = nodeB.Clone(viewModel.DocumentRoot.DocumentContext);
            ResourceHelper.StripOffFormatting(nodeB);
            DocumentCompositeNode node1 = nodeA.Context.CreateNode(PlatformTypes.DictionaryEntry);

            node1.Properties[node1.PlatformMetadata.KnownProperties.DictionaryEntryValue] = nodeA;
            DocumentCompositeNode node2 = nodeB.Context.CreateNode(PlatformTypes.DictionaryEntry);

            node2.Properties[node2.PlatformMetadata.KnownProperties.DictionaryEntryValue] = nodeB;
            XamlSerializer xamlSerializer = new XamlSerializer((IDocumentRoot)viewModel.XamlDocument, (IXamlSerializerFilter) new DefaultXamlSerializerFilter());

            return(xamlSerializer.Serialize(nodeA).Equals(xamlSerializer.Serialize(nodeB)));
        }