ContextNode.PartiallyPopulated, propriété
Mise à jour : November 2007
Obtient ou définit une valeur qui indique si un objet ContextNode est rempli partiellement ou complètement.
Espace de noms : System.Windows.Ink
Assembly : IAWinFX (dans IAWinFX.dll)
Syntaxe
'Déclaration
Public Property PartiallyPopulated As Boolean
'Utilisation
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)
Valeur de propriété
Type : System.Boolean
true si le ContextNode contient des données partielles au cours du traitement du proxy de données ; false si toutes les données ont été ajoutées.
Notes
Utilisez cette propriété pour le proxy de données lorsque des objets ContextNode sont créés dans l'arborescence des nœuds de contexte avant que toutes les informations associées soient disponibles. Cette propriété indique si le remplissage complet des données a été effectué.
Exemples
L'exemple suivant est une méthode nommée PopulateNode, issue d'un exemple de code qui utilise un [System.Windows.Controls.TreeView] comme modèle de document pour montrer comment le proxy de données peut être utilisé pour stocker et charger une arborescence de nœuds de contexte pour un InkAnalyzer. La classe DocumentNodeData stocke les données ContextNode dans le modèle de document lorsque la propriété [System.Windows.FrameworkElement.Tag] de chaque objet TreeViewItem a pour valeur un objet DocumentNodeData.
La méthode PopulateNode utilise un objet ContextNode et un objet InkAnalyzer pour remplir complètement le nœud de contexte en ajoutant des traits, des données de propriété, un type d'annotation, des nœuds enfants et des liens. Les données proviennent de l'objet DocumentNodeData obtenu du TreeViewItem correspondant.
this[analyzerNode.Id] est un indexeur pour la classe de modèle de document qui mappe un Guid à un TreeViewItem.
AddLinksToAnalyer est une méthode de la classe de modèle de document qui ajoute des liens au ContextNode.
Lorsque le nœud est complètement rempli, la propriété PartiallyPopulated a la valeur false.
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();
}
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0