IHierarchyData IHierarchyData IHierarchyData IHierarchyData Interface

Definición

Expone un nodo de una estructura de datos jerárquica, incluyendo el objeto de nodo y algunas propiedades que describen características del nodo.Exposes a node of a hierarchical data structure, including the node object and some properties that describe characteristics of the node. Los objetos que implementan la interfaz IHierarchyData se pueden contener en colecciones IHierarchicalEnumerable y los utilizan los controles de origen de datos y de navegación del sitio ASP.NET.Objects that implement the IHierarchyData interface can be contained in IHierarchicalEnumerable collections, and are used by ASP.NET site navigation and data source controls.

public interface class IHierarchyData
public interface IHierarchyData
type IHierarchyData = interface
Public Interface IHierarchyData
Derivado

Ejemplos

En el ejemplo de código siguiente se muestra cómo implementar la IHierarchyData interfaz con una clase que encapsule un FileSystemInfo objeto.The following code example demonstrates how to implement the IHierarchyData interface with a class that wraps a FileSystemInfo object. El FileSystemInfo clase es un buen ejemplo de un nodo de datos jerárquico que la IHierarchyData interfaz representa para controles de origen de datos jerárquicos de ASP.NET.The FileSystemInfo class is a good example of a hierarchical data node, which the IHierarchyData interface represents for ASP.NET hierarchical data source controls. Este ejemplo de código forma parte de un ejemplo más extenso proporcionado para el HierarchicalDataSourceControl clase.This code example is part of a larger example provided for the HierarchicalDataSourceControl class.

public class FileSystemHierarchyData : IHierarchyData
{
    private FileSystemInfo fileSystemObject = null;

    public FileSystemHierarchyData(FileSystemInfo obj)
    {
        fileSystemObject = obj;
    }

    public override string ToString()
    {
        return fileSystemObject.Name;
    }
    // IHierarchyData implementation.
    public bool HasChildren
    {
        get
        {
            if (typeof(DirectoryInfo) == fileSystemObject.GetType())
            {
                DirectoryInfo temp = (DirectoryInfo)fileSystemObject;
                return (temp.GetFileSystemInfos().Length > 0);
            }
            else return false;
        }
    }
    // DirectoryInfo returns the OriginalPath, while FileInfo returns
    // a fully qualified path.
    public string Path
    {
        get
        {
            return fileSystemObject.ToString();
        }
    }
    public object Item
    {
        get
        {
            return fileSystemObject;
        }
    }
    public string Type
    {
        get
        {
            return "FileSystemData";
        }
    }
    public IHierarchicalEnumerable GetChildren()
    {
        FileSystemHierarchicalEnumerable children =
            new FileSystemHierarchicalEnumerable();

        if (typeof(DirectoryInfo) == fileSystemObject.GetType())
        {
            DirectoryInfo temp = (DirectoryInfo)fileSystemObject;
            foreach (FileSystemInfo fsi in temp.GetFileSystemInfos())
            {
                children.Add(new FileSystemHierarchyData(fsi));
            }
        }
        return children;
    }

    public IHierarchyData GetParent()
    {
        FileSystemHierarchicalEnumerable parentContainer =
            new FileSystemHierarchicalEnumerable();

        if (typeof(DirectoryInfo) == fileSystemObject.GetType())
        {
            DirectoryInfo temp = (DirectoryInfo)fileSystemObject;
            return new FileSystemHierarchyData(temp.Parent);
        }
        else if (typeof(FileInfo) == fileSystemObject.GetType())
        {
            FileInfo temp = (FileInfo)fileSystemObject;
            return new FileSystemHierarchyData(temp.Directory);
        }
        // If FileSystemObj is any other kind of FileSystemInfo, ignore it.
        return null;
    }
}

Public Class FileSystemHierarchyData
    Implements IHierarchyData

    Public Sub New(ByVal obj As FileSystemInfo)
        fileSystemObject = obj
    End Sub

    Private fileSystemObject As FileSystemInfo = Nothing

    Public Overrides Function ToString() As String
        Return fileSystemObject.Name
    End Function

    ' IHierarchyData implementation.
    Public Overridable ReadOnly Property HasChildren() As Boolean _
     Implements IHierarchyData.HasChildren
        Get
            If GetType(DirectoryInfo) Is fileSystemObject.GetType() Then
                Dim temp As DirectoryInfo = _
                    CType(fileSystemObject, DirectoryInfo)
                Return temp.GetFileSystemInfos().Length > 0
            Else
                Return False
            End If
        End Get
    End Property
    ' DirectoryInfo returns the OriginalPath, while FileInfo returns
    ' a fully qualified path.

    Public Overridable ReadOnly Property Path() As String _
     Implements IHierarchyData.Path
        Get
            Return fileSystemObject.ToString()
        End Get
    End Property

    Public Overridable ReadOnly Property Item() As Object _
     Implements IHierarchyData.Item
        Get
            Return fileSystemObject
        End Get
    End Property

    Public Overridable ReadOnly Property Type() As String _
     Implements IHierarchyData.Type
        Get
            Return "FileSystemData"
        End Get
    End Property

    Public Overridable Function GetChildren() _
        As IHierarchicalEnumerable _
        Implements IHierarchyData.GetChildren

        Dim children As New FileSystemHierarchicalEnumerable()

        If GetType(DirectoryInfo) Is fileSystemObject.GetType() Then
            Dim temp As DirectoryInfo = _
                CType(fileSystemObject, DirectoryInfo)
            Dim fsi As FileSystemInfo
            For Each fsi In temp.GetFileSystemInfos()
                children.Add(New FileSystemHierarchyData(fsi))
            Next fsi
        End If
        Return children
    End Function 'GetChildren


    Public Overridable Function GetParent() As IHierarchyData _
     Implements IHierarchyData.GetParent
        Dim parentContainer As New FileSystemHierarchicalEnumerable()

        If GetType(DirectoryInfo) Is fileSystemObject.GetType() Then
            Dim temp As DirectoryInfo = _
                CType(fileSystemObject, DirectoryInfo)
            Return New FileSystemHierarchyData(temp.Parent)
        ElseIf GetType(FileInfo) Is fileSystemObject.GetType() Then
            Dim temp As FileInfo = CType(fileSystemObject, FileInfo)
            Return New FileSystemHierarchyData(temp.Directory)
        End If
        ' If FileSystemObj is any other kind of FileSystemInfo, ignore it.
        Return Nothing
    End Function 'GetParent
End Class 'FileSystemHierarchyData

En el ejemplo de código siguiente se muestra cómo recursivamente recorrer en iteración un IHierarchicalEnumerable colección, extraer el IHierarchyData elemento desde el enumerador con el GetHierarchyData método y realizar el trabajo básico con el elemento de datos.The following code example demonstrates how to recursively iterate through an IHierarchicalEnumerable collection, extract the IHierarchyData item from the enumerator using the GetHierarchyData method, and perform basic work with the data item.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ihd_1.aspx.cs" Inherits="ihd_1_aspx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="ihd_1.aspx.vb" Inherits="ihd_1_aspx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>

Comentarios

El IHierarchyData interfaz se implementa mediante las clases que representan los nodos de una estructura jerárquica y realizar el seguimiento de las relaciones jerárquicas en sus nodos primarios y secundarios.The IHierarchyData interface is implemented by classes that represent nodes of a hierarchical structure, and track the hierarchical relationships to their parent and child nodes. Las clases que implementan la IHierarchyData interfaz puede incluirse en las colecciones que implementan la IHierarchicalEnumerable interfaz.Classes that implement the IHierarchyData interface can be contained in collections that implement the IHierarchicalEnumerable interface.

Propiedades

HasChildren HasChildren HasChildren HasChildren

Indica si el nodo de datos jerárquico que representa el objeto IHierarchyData tiene algún nodo secundario.Indicates whether the hierarchical data node that the IHierarchyData object represents has any child nodes.

Item Item Item Item

Obtiene el nodo de datos jerárquico que representa el objeto IHierarchyData.Gets the hierarchical data node that the IHierarchyData object represents.

Path Path Path Path

Obtiene la ruta de acceso jerárquica del nodo.Gets the hierarchical path of the node.

Type Type Type Type

Obtiene el nombre del tipo del objeto Object contenido en la propiedad Item.Gets the name of the type of Object contained in the Item property.

Métodos

GetChildren() GetChildren() GetChildren() GetChildren()

Obtiene un objeto de enumeración que representa todos los nodos secundarios del nodo jerárquico actual.Gets an enumeration object that represents all the child nodes of the current hierarchical node.

GetParent() GetParent() GetParent() GetParent()

Obtiene un objeto IHierarchyData que representa el nodo primario del nodo jerárquico actual.Gets an IHierarchyData object that represents the parent node of the current hierarchical node.

Se aplica a

Consulte también: