ContextNode.PartiallyPopulated-Eigenschaft
Ruft den Wert eines Bezeichners ab, der angibt, ob ein ContextNode-Objekt teilweise oder vollständig aufgefüllt ist, oder legt diesen fest.
Namespace: System.Windows.Ink
Assembly: IAWinFX (in IAWinFX.dll)
Syntax
'Declaration
Public Property PartiallyPopulated As Boolean
'Usage
Dim instance As ContextNode
Dim value As Boolean
value = instance.PartiallyPopulated
instance.PartiallyPopulated = value
public bool PartiallyPopulated { get; set; }
public:
property bool PartiallyPopulated {
bool get ();
void set (bool value);
}
/** @property */
public boolean get_PartiallyPopulated()
/** @property */
public void set_PartiallyPopulated(boolean value)
public function get PartiallyPopulated () : boolean
public function set PartiallyPopulated (value : boolean)
Eigenschaftenwert
Typ: System.Boolean
true , wenn der ContextNode während des Datenproxyprozesses partielle Daten enthält; false,wenn alle Daten hinzugefügt wurden.
Hinweise
Verwenden Sie diese Eigenschaft für Datenproxy, wenn ContextNode-Objekte in der Kontextknotenstruktur erstellt wurden, bevor alle relevanten Informationen zur Verfügung stehen. Diese Eigenschaft gibt an, ob eine vollständige Auffüllung mit Daten erfolgt ist.
Beispiele
Das folgende Beispiel ist eine Methode mit dem Namen PopulateNode, aus dem Beispielcode, der einen [System.Windows.Controls.TreeView] als Dokumentmodell verwendet, um zu zeigen, wie Datenproxys verwendet werden können, um die Kontextknotenstruktur für einen InkAnalyzer zu speichern oder zu laden. Die DocumentNodeData-Klasse speichert die ContextNode-Daten im Dokumentmodell, wenn die [System.Windows.FrameworkElement.Tag]-Eigenschaft jedes TreeViewItem-Objekts auf ein DocumentNodeData-Objekt festgelegt wird.
Die PopulateNode-Methode verwendet ein ContextNode -Objekt und ein InkAnalyzer-Objekt, um den Kontextknoten vollständig aufzufüllen durch das Hinzufügen von Strichen, Eigenschaftsdaten, Anmerkungstypen, untergeordneten Knoten und Verknüpfungen. Die Daten stammen aus dem DocumentNodeData-Objekt, das vom entsprechenden TreeViewItem erhalten wird.
this[analyzerNode.Id] ist ein Indexer auf die Dokumentmodellklasse, die einen Guid einem TreeViewItem zuordnet.
AddLinksToAnalyer ist eine Methode für die Dokumentmodellklasse, die Verknüpfungen zum ContextNode hinzufügt.
Nachdem der Knoten vollständig aufgefüllt wird, wird die PartiallyPopulated-Eigenschaft auf false festgelegt.
Sub PopulateNode(ByVal analyzerNode As ContextNode, ByVal theInkAnalyzer As InkAnalyzer) Implements IDocumentModel.PopulateNode
System.Diagnostics.Debug.WriteLine(String.Format("IDocumentModel.PopulateNode: populate {0} {1}.", analyzerNode.ToString(), GetRecognizedString(analyzerNode)))
System.Diagnostics.Debug.Indent()
' Get the document node associated with the analyzer node.
Dim documentNode As TreeViewItem = Me(analyzerNode.Id)
If documentNode Is Nothing Then
Throw New ApplicationException("The requested node does not exist in the document model.")
End If
' Get the data associated with the node.
Dim nodeData As DocumentNodeData = documentNode.Tag '
' Copy any application specific data associated with the node to the
' partially populated ContextNode.
For Each identifier As Guid In nodeData.GetPropertyDataIds()
analyzerNode.AddPropertyData(identifier, nodeData.GetPropertyData(identifier))
Next identifier
' Check if the partially populated ContextNode is an ink leaf node.
If nodeData.IsInkLeafNode Then
' Add the strokes to the context node.
analyzerNode.SetStrokes(nodeData.Strokes)
Else
' Add each child subnode as a partially populated ContextNode.
Dim documentSubNode As TreeViewItem
For Each documentSubNode In documentNode.Items
' Get the DocumentNode data for the
Dim subNodeData As DocumentNodeData = documentSubNode.Tag '
If analyzerNode.SubNodes.IndexOf(nodeData.Id) <> -1 Then
analyzerNode.CreatePartiallyPopulatedSubNode( _
subNodeData.Type, subNodeData.Id, subNodeData.Location)
End If
Next documentSubNode
End If
' Add links to the ContextNode.
Me.AddLinksToAnalyzer(documentNode, analyzerNode, theInkAnalyzer)
' Update the partially populated flag.
analyzerNode.PartiallyPopulated = False
System.Diagnostics.Debug.Unindent()
End Sub 'IDocumentModel.PopulateNode
void IDocumentModel.PopulateNode(
ContextNode analyzerNode,
InkAnalyzer theInkAnalyzer)
{
System.Diagnostics.Debug.WriteLine(string.Format(
"IDocumentModel.PopulateNode: populate {0} {1}.",
analyzerNode.ToString(), GetRecognizedString(analyzerNode)));
System.Diagnostics.Debug.Indent();
// Get the document node associated with the analyzer node.
TreeViewItem documentNode = this[analyzerNode.Id];
if (null == documentNode)
{
throw new ApplicationException(
"The requested node does not exist in the document model.");
}
// Get the data associated with the node.
DocumentNodeData nodeData = documentNode.Tag as DocumentNodeData;
// Copy any application specific data associated with the node to the
// partially populated ContextNode.
foreach (Guid identifier in nodeData.GetPropertyDataIds())
{
analyzerNode.AddPropertyData(
identifier, nodeData.GetPropertyData(identifier));
}
// Check if the partially populated ContextNode is an ink leaf node.
if (nodeData.IsInkLeafNode)
{
// Add the strokes to the context node.
analyzerNode.SetStrokes(nodeData.Strokes);
}
else
{
// Add each child subnode as a partially populated ContextNode.
foreach (TreeViewItem documentSubNode in documentNode.Items)
{
// Get the DocumentNode data for the
DocumentNodeData subNodeData = documentSubNode.Tag as DocumentNodeData;
if (analyzerNode.SubNodes.IndexOf(nodeData.Id) != -1)
{
analyzerNode.CreatePartiallyPopulatedSubNode(
subNodeData.Type, subNodeData.Id, subNodeData.Location);
}
}
}
// Add links to the ContextNode.
this.AddLinksToAnalyzer(documentNode, analyzerNode, theInkAnalyzer);
// Update the partially populated flag.
analyzerNode.PartiallyPopulated = false;
System.Diagnostics.Debug.Unindent();
}
Plattformen
Windows Vista
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Versionsinformationen
.NET Framework
Unterstützt in: 3.0