x:XData-XAML-Direktivenelement
Aktualisiert: November 2007
Das x:XData-XAML-Direktivenelement ordnet XML-Dateninseln auf einer XAML-Seite an. XML-Elemente innerhalb dieses Direktivenelements werden nicht so behandelt, als ob sie Teil des WPF-Namespace sind, und können beliebige wohlgeformte XML-Elemente enthalten.
Verwendung von XAML-Objektelementen
<XmlDataProvider ...>
<x:XData>
<elementDataRoot>
[elementData]
</elementDataRoot>
</x:XData>
</XmlDataProvider>
XAML-Werte
elementDataRoot |
Erforderlich. Das einzelne Stammelement der eingeschlossenen Dateninsel. Ohne einzelnen Stamm ist x:XData als Datenquelle ungültig. |
[elementData] |
Optional. XML-Element, das Ihre Daten darstellt. Gemäß den allgemeinen XML-Regeln kann eine beliebige Anzahl von Elementen als Elementdaten enthalten sein, geschachtelte Elemente können in anderen Elementen enthalten sein usw. |
Abhängigkeiten
Das x:XData-Element wird vorrangig als untergeordnetes Element von XmlDataProvider oder alternativ dazu als untergeordnetes Element der XmlSerializer-Eigenschaft der XmlDataProvider-Eigenschaft verwendet, die mithilfe der Objekteigenschaftsyntax ausgedrückt wird.
Hinweise
Die XML-Elemente innerhalb dieses Direktivenelements können alle möglichen Namespaces und Präfixe der Dateninsel neu deklarieren. Normalerweise sollten die Daten den XML-Basis-Namespace innerhalb der Dateninsel als neuen XML-Namespace (auf eine leere Zeichenfolge gesetzt) definieren. Dies ist für simple Dateninseln am einfachsten, da die XPath-Ausdrücke, die zum Verweisen auf und Binden an die Daten verwendet werden, keine Einbeziehung von Präfixen erfordern. Bei komplexeren Dateninseln kann es besser sein, für die Daten mehrere Präfixe zu definieren und auf Stammebene für den XML-Namespace ein spezielles Präfix zu verwenden. In diesem Fall müssen alle Verweise auf XPath-Ausdrücke das entsprechende Präfix mit Namespacezuordnung enthalten.
Technisch können Sie x:XData als Inhalt einer beliebigen Eigenschaft vom Typ IXmlSerializable verwenden. Die einzige deutlich erkennbare Implementierung ist jedoch XmlDataProvider.XmlSerializer.