View.GetContextNodes-Methode
Ruft einen Verweis auf ein XPathNodeIterator-Objekt zum Durchlaufen der zurückgegebenen XML-Knoten in der aktuellen Auswahl ab.
Namespace: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in Microsoft.Office.InfoPath.dll)
Syntax
'Declaration
Public MustOverride Function GetContextNodes As XPathNodeIterator
'Usage
Dim instance As View
Dim returnValue As XPathNodeIterator
returnValue = instance.GetContextNodes()
public abstract XPathNodeIterator GetContextNodes()
Rückgabewert
Typ: System.Xml.XPath.XPathNodeIterator
Ein XPathNodeIterator-Objekt, das mit den Knoten in der aktuellen Auswahl aufgefüllt wird.
Ausnahmen
Ausnahme | Bedingung |
---|---|
InvalidOperationException | Die GetContextNodes-Methode wurde aus einem Ereignishandler für das Loading-Ereignis aufgerufen. |
Hinweise
Die von der GetContextNodes-Methode zurückgegebenen XML-Knoten bestehen aus einer Sequenz von Knoten, die von der Ansicht entsprechend den ausgewählten XSLT-Knoten (XSL-Transformation) zugeordnet werden.
Wenn die ausgewählten Knoten an mehrere Steuerelemente in der Ansicht gebunden sind, müssen Sie stattdessen die GetContextNodes-Methode verwenden, mit der Sie den ViewContext-Bezeichner des Steuerelements angeben können, das an die zu durchlaufenden Knoten gebunden ist.
Hinweis
Die GetContextNodes-Methode gibt keine Knoten basierend auf der aktuellen Auswahl zurück, wenn sie im Ereignishandler für das Clicked-Ereignis einer Schaltfläche in der Ansicht verwendet wird, da der Fokus dem Steuerelement entzogen wird, das sich eigentlich im Kontext befinden sollte. Um dieses Verhalten zu vermeiden, verwenden Sie GetContextNodes in einem benutzerdefinierten Aufgabenbereich, einem benutzerdefinierten Menü oder einer benutzerdefinierten Symbolleiste.
Auf den Member kann nur über Formulare zugegriffen werden, die in derselben Domäne wie das zurzeit geöffnete Formular ausgeführt werden, oder über Formulare, denen domänenübergreifende Berechtigungen erteilt wurden.
Auf diesen Typ oder diesen Member kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die mit Microsoft InfoPath Filler geöffnet wurden.
Beispiele
Im folgenden Beispiel wird die GetContextNodes-Methode verwendet, um eine Auflistung von Kontextknoten basierend auf der aktuellen Auswahl zurückzugeben, um eine XPathNodeIterator-Objektvariable aufzufüllen. Der Code führt dann eine Schleife durch die Auflistung von Kontextknoten aus und zeigt den Namen, die innere XML und den Wert jedes Knotens an.
// Get context nodes in current selection.
XPathNodeIterator contextNodes =
CurrentView.GetContextNodes();
// Loop through collection and display information.
foreach (XPathNavigator contextNode in contextNodes)
{
MessageBox.Show(contextNode.Name);
MessageBox.Show(contextNode.InnerXml);
MessageBox.Show(contextNode.Value);
}
' Get context nodes in current selection.
Dim contextNodes As XPathNodeIterator = _
CurrentView.GetContextNodes(repeatingTableRow1)
' Loop through collection and display information.
Dim contextNode As XPathNavigator
For Each contextNode In contextNodes
MessageBox.Show(contextNode.Name)
MessageBox.Show(contextNode.InnerXml)
MessageBox.Show(contextNode.Value)
Next