IHierarchyData.Item Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém o nó de dados hierárquicos representado pelo objeto IHierarchyData.
public:
property System::Object ^ Item { System::Object ^ get(); };
public object Item { get; }
member this.Item : obj
Public ReadOnly Property Item As Object
Valor da propriedade
Um Object objeto de nó de dados hierárquico.
Exemplos
O exemplo de código a seguir demonstra como acessar IHierarchyData propriedades, verificar o tipo de um IHierarchyData objeto usando a Type propriedade e converter o objeto para executar operações mais específicas de tipo. Este exemplo de código faz parte de um exemplo maior fornecido para a IHierarchyData interface.
// Print out the current data node, then iterate through its
// children and do the same.
private void PrintFullChildNodeInfo(IHierarchyData node)
{
string whitespace = " ";
string br = "<BR>";
Response.Write(node.ToString() + br);
Response.Write(whitespace + node.Path + br);
// Check for specific types and perform extended functions.
if (node.Type == "SiteMapNode")
{
// Because SiteMapNode implements the IHierarchyData interface,
// the IHierarchyData object can be cast directly as a SiteMapNode,
// rather than accessing the Item property for the object that
// the Type property identifies.
SiteMapNode siteNode = node.Item as SiteMapNode;
Response.Write(whitespace + siteNode.Url + br);
Response.Write(whitespace + siteNode.Description + br);
}
else if (node.Type == "SomeBusinessObject")
{
// If the IHierarchyData instance is a wrapper class on a business
// object of some kind, you can retrieve the business object by using
// the IHierarchyData.Item property.
// SomeBusinessObject busObj = node.Item as SomeBusinessObject;
}
if (node.HasChildren)
{
IEnumerator children = ((IHierarchicalEnumerable)node.GetChildren()).GetEnumerator();
while (children.MoveNext())
{
// Print out SiteMapNode Titles recursively.
IHierarchyData hierarchicalNode = node.GetChildren().GetHierarchyData(children.Current);
PrintFullChildNodeInfo(hierarchicalNode);
}
}
}
' Print out the current data node, then iterate through its
' children and do the same.
Private Sub PrintFullChildNodeInfo(ByVal node As IHierarchyData)
Dim whitespace As String = " "
Dim br As String = "<BR>"
Response.Write(Convert.ToString(node) & br)
Response.Write(whitespace & node.Path & br)
' Check for specific types and perform extended functions.
If node.Type = "SiteMapNode" Then
' Because SiteMapNode implements the IHierarchyData interface,
' the IHierarchyData object can be cast directly as a SiteMapNode,
' rather than accessing the Item property for the object that
' the Type property identifies.
Dim siteNode As SiteMapNode = CType(node.Item, SiteMapNode)
Response.Write(whitespace & siteNode.Url & br)
Response.Write(whitespace & siteNode.Description & br)
ElseIf node.Type = "SomeBusinessObject Then" Then
' If the IHierarchyData instance is a wrapper class on a business
' object of some kind, you can retrieve the business object by using
' the IHierarchyData.Item property.
' SomeBusinessObject busObj = node.Item as SomeBusinessObject;
End If
If node.HasChildren Then
Dim children As IEnumerator = CType(node.GetChildren().GetEnumerator(), IHierarchicalEnumerable)
While children.MoveNext()
' Print out SiteMapNode Titles recursively.
Dim hierarchicalNode As IHierarchyData = node.GetChildren().GetHierarchyData(children.Current)
PrintFullChildNodeInfo(hierarchicalNode)
End While
End If
End Sub
Comentários
Embora muitas classes que representam nós de dados hierárquicos, como a SiteMapNode classe, implementem a IHierarchyData interface diretamente, outras classes atuam apenas como um wrapper para uma classe que não implementa a interface. A Item propriedade é fornecida para essas situações de design, quando objetos de negócios são funcionalmente equivalentes a um IHierarchyData objeto, mas não podem ser reprojetados facilmente.