public void Visit(ElementNode node, INode parentNode) { XmlName propertyName; //Set ResourcesDictionaries to their parents if (IsResourceDictionary(node) && SetPropertiesVisitor.TryGetPropertyName(node, parentNode, out propertyName)) { if ((propertyName.LocalName == "Resources" || propertyName.LocalName.EndsWith(".Resources", StringComparison.Ordinal))) { Context.IL.Append(SetPropertiesVisitor.SetPropertyValue(Context.Variables[(IElementNode)parentNode], propertyName, node, Context, node)); return; } } //Only proceed further if the node is a keyless RD if (parentNode is IElementNode && IsResourceDictionary((IElementNode)parentNode) && !((IElementNode)parentNode).Properties.ContainsKey(XmlName.xKey)) { node.Accept(new SetPropertiesVisitor(Context, stopOnResourceDictionary: false), parentNode); } else if (parentNode is ListNode && IsResourceDictionary((IElementNode)parentNode.Parent) && !((IElementNode)parentNode.Parent).Properties.ContainsKey(XmlName.xKey)) { node.Accept(new SetPropertiesVisitor(Context, stopOnResourceDictionary: false), parentNode); } }
public void Visit(ListNode node, INode parentNode) { XmlName name; if (SetPropertiesVisitor.TryGetPropertyName(node, parentNode, out name)) { node.XmlName = name; } }