|
|
|
@ -278,14 +278,20 @@ namespace ICSharpCode.WpfDesign.XamlDom |
|
|
|
|
|
|
|
|
|
|
|
XmlElement CreatePropertyElement() |
|
|
|
XmlElement CreatePropertyElement() |
|
|
|
{ |
|
|
|
{ |
|
|
|
string ns = parentObject.OwnerDocument.GetNamespaceFor(parentObject.ElementType); |
|
|
|
Type propertyElementType = GetPropertyElementType(); |
|
|
|
|
|
|
|
string ns = parentObject.OwnerDocument.GetNamespaceFor(propertyElementType); |
|
|
|
return parentObject.OwnerDocument.XmlDocument.CreateElement( |
|
|
|
return parentObject.OwnerDocument.XmlDocument.CreateElement( |
|
|
|
parentObject.OwnerDocument.GetPrefixForNamespace(ns), |
|
|
|
parentObject.OwnerDocument.GetPrefixForNamespace(ns), |
|
|
|
parentObject.ElementType.Name + "." + this.PropertyName, |
|
|
|
propertyElementType.Name + "." + this.PropertyName, |
|
|
|
ns |
|
|
|
ns |
|
|
|
); |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Type GetPropertyElementType() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return this.IsAttached ? this.PropertyTargetType : parentObject.ElementType; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static XmlNode FindChildNode(XmlNode node, string localName, string namespaceURI) |
|
|
|
static XmlNode FindChildNode(XmlNode node, string localName, string namespaceURI) |
|
|
|
{ |
|
|
|
{ |
|
|
|
foreach (XmlNode childNode in node.ChildNodes) { |
|
|
|
foreach (XmlNode childNode in node.ChildNodes) { |
|
|
|
@ -305,7 +311,8 @@ namespace ICSharpCode.WpfDesign.XamlDom |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (this.IsCollection) { |
|
|
|
if (this.IsCollection) { |
|
|
|
if (IsNodeCollectionForThisProperty(newChildNode)) { |
|
|
|
if (IsNodeCollectionForThisProperty(newChildNode)) { |
|
|
|
XmlNode parentNode = FindChildNode(parentObject.XmlElement, parentObject.ElementType.Name + "." + this.PropertyName, parentObject.OwnerDocument.GetNamespaceFor(parentObject.ElementType)); |
|
|
|
Type propertyElementType = GetPropertyElementType(); |
|
|
|
|
|
|
|
XmlNode parentNode = FindChildNode(parentObject.XmlElement, propertyElementType.Name + "." + this.PropertyName, parentObject.OwnerDocument.GetNamespaceFor(propertyElementType)); |
|
|
|
|
|
|
|
|
|
|
|
if (parentNode == null) { |
|
|
|
if (parentNode == null) { |
|
|
|
parentNode = CreatePropertyElement(); |
|
|
|
parentNode = CreatePropertyElement(); |
|
|
|
|