Ағылшын тілінде оқу

Бөлісу құралы:


IHierarchyData Интерфейс

Определение

Показывает узел иерархической структуры данных, включая объект узла и некоторые свойства, описывающие характеристики узла. Объект, реализующий интерфейс IHierarchyData, может содержаться в коллекции IHierarchicalEnumerable, и используется элементами управления навигации узла ASP.NET и источника данных.

public interface IHierarchyData
Производный

Примеры

В следующем примере кода показано, как реализовать IHierarchyData интерфейс с помощью класса , который заключает объект в оболочку FileSystemInfo . Класс FileSystemInfo является хорошим примером иерархического узла данных, который IHierarchyData интерфейс представляет для ASP.NET иерархических элементов управления источником данных. Этот пример входит в состав более крупного примера использования класса HierarchicalDataSourceControl.

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;
    }
}

В следующем примере кода показано, как рекурсивно выполнить итерацию по IHierarchicalEnumerable коллекции, извлечь IHierarchyData элемент из перечислителя с помощью GetHierarchyData метода и выполнить базовую работу с элементом данных.

<%@ 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>

Комментарии

Интерфейс IHierarchyData реализуется классами, которые представляют узлы иерархической структуры и отслеживают иерархические связи с их родительскими и дочерними узлами. Классы, реализующие IHierarchyData интерфейс, могут содержаться в коллекциях, реализующих IHierarchicalEnumerable интерфейс .

Свойства

HasChildren

Показывает, имеет ли иерархический узел данных, представляемый объектом IHierarchyData, какие либо дочерние узлы.

Item

Возвращает иерархический узел данных, представляемый объектом IHierarchyData.

Path

Возвращает иерархический путь к узлу.

Type

Возвращает имя типа объекта Object, содержащегося в свойстве Item.

Методы

GetChildren()

Возвращает объект перечисления, представляющий все дочерние узлы текущего иерархического узла.

GetParent()

Возвращает объект IHierarchyData, представляющий родительский узел текущего иерархического узла.

Применяется к

Өнім Нұсқалар
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

См. также раздел