IHierarchyData.Item IHierarchyData.Item IHierarchyData.Item IHierarchyData.Item Property

Definition

Ruft den hierarchischen Datenknoten ab, den das IHierarchyData-Objekt darstellt.Gets the hierarchical data node that the IHierarchyData object represents.

public:
 property System::Object ^ Item { System::Object ^ get(); };
public object Item { get; }
member this.Item : obj
Public ReadOnly Property Item As Object

Eigenschaftswert

Ein Object-Objekt für hierarchische Datenknoten.An Object hierarchical data node object.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie IHierarchyData Sie auf Eigenschaften zugreifen, den Typ IHierarchyData eines Objekts mit Type der-Eigenschaft überprüfen und das-Objekt umwandeln, um weitere typspezifische Vorgänge auszuführen.The following code example demonstrates how to access IHierarchyData properties, check the type of an IHierarchyData object using the Type property, and cast the object to perform more type-specific operations. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die IHierarchyData -Schnittstelle bereitgestellt wird.This code example is part of a larger example provided for the 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 = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
    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

Hinweise

Während viele Klassen, die hierarchische Datenknoten darstellen (z SiteMapNode . b. die IHierarchyData -Klasse), die-Schnittstelle direkt implementieren, fungieren andere Klassen nur als Wrapper für eine Klasse, die die-Schnittstelle nicht implementiert.While many classes that represent hierarchical data nodes, such as the SiteMapNode class, implement the IHierarchyData interface directly, other classes only act as a wrapper for a class that does not implement the interface. Die Item -Eigenschaft wird für diese Entwurfs Situationen bereitgestellt, wenn Geschäftsobjekte funktionell äquivalent zu IHierarchyData einem Objekt sind, aber nicht einfach neu gestaltet werden können.The Item property is provided for these design situations, when business objects are functionally equivalent to an IHierarchyData object but cannot be redesigned easily.

Gilt für:

Siehe auch