Browse Source

Templatehelper should Clone the Node and don't modify the original one

pull/604/head
jogibear9988 12 years ago
parent
commit
54eedf4410
  1. 17
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/TemplateHelper.cs

17
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/TemplateHelper.cs

@ -50,20 +50,17 @@ namespace ICSharpCode.WpfDesign.XamlDom
if (!nav.MoveToParent()) if (!nav.MoveToParent())
break; break;
} }
xmlElement = (XmlElement)xmlElement.CloneNode(true);
foreach (var dictentry in ns.ToList()) foreach (var dictentry in ns.ToList())
{ {
if (xmlElement.HasAttribute("xmlns:" + dictentry.Key)) xmlElement.SetAttribute("xmlns:" + dictentry.Key, dictentry.Value);
ns.Remove(dictentry.Key);
else
xmlElement.SetAttribute("xmlns:" + dictentry.Key, dictentry.Value);
} }
var keyAttrib = xmlElement.GetAttribute("Key", XamlConstants.XamlNamespace); var keyAttrib = xmlElement.GetAttribute("Key", XamlConstants.XamlNamespace);
bool keySet = false;
if (string.IsNullOrEmpty(keyAttrib)) { if (string.IsNullOrEmpty(keyAttrib)) {
keySet = true;
xmlElement.SetAttribute("Key", XamlConstants.XamlNamespace, "$$temp&&§§%%__"); xmlElement.SetAttribute("Key", XamlConstants.XamlNamespace, "$$temp&&§§%%__");
} }
@ -117,14 +114,6 @@ namespace ICSharpCode.WpfDesign.XamlDom
var result = (ResourceDictionary)writer.Result; var result = (ResourceDictionary)writer.Result;
if (keySet)
xmlElement.RemoveAttribute("Key", XamlConstants.XamlNamespace);
foreach (var dictentry in ns)
{
xmlElement.RemoveAttribute("xmlns:" + dictentry.Key);
}
var enr = result.Keys.GetEnumerator(); var enr = result.Keys.GetEnumerator();
enr.MoveNext(); enr.MoveNext();
var rdKey = enr.Current; var rdKey = enr.Current;

Loading…
Cancel
Save