NestedContainer Класс

Определение

Предоставляет базовую реализацию интерфейса INestedContainer, позволяющую использовать компонент-владелец для контейнеров.Provides the base implementation for the INestedContainer interface, which enables containers to have an owning component.

public ref class NestedContainer : System::ComponentModel::Container, IDisposable, System::ComponentModel::INestedContainer
public class NestedContainer : System.ComponentModel.Container, IDisposable, System.ComponentModel.INestedContainer
type NestedContainer = class
    inherit Container
    interface INestedContainer
    interface IContainer
    interface IDisposable
Public Class NestedContainer
Inherits Container
Implements IDisposable, INestedContainer
Наследование
NestedContainer
Реализации

Комментарии

Класс является простой реализацией INestedContainer интерфейса, который определяет компонент, который логически содержит ноль или более других компонентов и принадлежит родительскому компоненту. NestedContainerThe NestedContainer class is a simple implementation of the INestedContainer interface, which defines a component that logically contains zero or more other components and is owned by a parent component. Поведение вложенных контейнеров отличается от стандартного Container несколькими способами, включая следующие.The behavior of nested containers differs from a standard Container in a number of ways, including the following:

  • Характеристики сайта, такие DesignMode как GetService и, направляются через сайт компонента-владельца.Site characteristics such as DesignMode and GetService are routed through the owning component's site.

  • Name Свойство сайта — это полное имя, включающее в себя имя компонента-владельца, за которым следует точка (.) и имя дочернего компонента.The site's Name property is a qualified name that includes the owning component's name followed by a period (.) and the child component's name.

  • GetServiceпредоставляет поддержку для INestedContainer службы как услуги.GetService provides support for the INestedContainer as a service.

  • При удалении компонента-владельца контейнер также удаляется.When the owning component is disposed, the container is disposed as well.

Кроме того, конструкторы разрабатывают вложенные контейнеры по-разному.In addition, designers treat nested containers differently. Узел конструктора заинтересован в одном контейнере, связанном с узлом.A designer host is only interested in one container - the one associated with the host. Поэтому события добавления и удаления компонентов не вызываются при добавлении или удалении компонента из вложенного контейнера.Therefore, component add and remove events are not raised when a component is added to or removed from a nested container. Однако, поскольку службы проходят через вложенный контейнер, события изменения компонента вызываются при изменении компонента во вложенном контейнере.However, because services flow through to the nested container, component change events are raised when a component in a nested container is changed.

Такое нарушение четности при отслеживании событий также влияет на функциональность отмены, которая тесно связана с сериализацией.This disparity in event tracking also impacts undo functionality, which is closely tied to serialization. Стандартный механизм отмены используется IReferenceService для наблюдения за изменениями, внесенными в компоненты.The standard undo engine uses IReferenceService to track changes made to components. Если подсистема отмены не может опознать имя для компонента через справочную службу, то ядро будет игнорировать все изменения для этого компонента.If the undo engine cannot identify a name for a component through the reference service, the engine will ignore any changes for that component. Эта служба автоматически распознает изменения в автономных компонентах только в том случае, если они предоставляются как открытые свойства только для чтения с тем же именем в своих владельцах.This service automatically recognizes changes to contained components only if they are exposed as public read-only properties of the same name in their owners. В противном случае разработчик должен передать события изменения компонентов вплоть до владельца.Otherwise, the developer must pass component change events up to the owner. Например, если Text свойство вложенного компонента передается на свой компонент-владелец Address как свойство, при Text изменении свойства необходимо программно изменить свойство для соответствующего Address или иначе это изменение не будет относиться к отслеживанию путем отмены.For example, if a nested component's Text property is resurfaced on its owning component as an Address property, when the Text property is changed, a property change must be programmatically made for the corresponding Address property or else that change will not be tracked by undo.

Конструкторы

NestedContainer(IComponent)

Инициализирует новый экземпляр класса NestedContainer.Initializes a new instance of the NestedContainer class.

Свойства

Components

Получает все компоненты в контейнере Container.Gets all the components in the Container.

(Унаследовано от Container)
Owner

Возвращает компонент-владелец для этого вложенного контейнера.Gets the owning component for this nested container.

OwnerName

Возвращает имя компонента-владельца.Gets the name of the owning component.

Методы

Add(IComponent)

Добавляет заданный объект Component в Container.Adds the specified Component to the Container. Компонент добавляется без имени.The component is unnamed.

(Унаследовано от Container)
Add(IComponent, String)

Добавляет указанный Component в Container и присваивает ему имя.Adds the specified Component to the Container and assigns it a name.

(Унаследовано от Container)
CreateSite(IComponent, String)

Создает внутри контейнера узел для компонента.Creates a site for the component within the container.

Dispose()

Освобождает все ресурсы, занятые модулем Container.Releases all resources used by the Container.

(Унаследовано от Container)
Dispose(Boolean)

Освобождает ресурсы, используемые вложенным контейнером.Releases the resources used by the nested container.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetService(Type)

Возвращает объект службы указанного типа, если он доступен.Gets the service object of the specified type, if it is available.

GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
Remove(IComponent)

Удаляет компонент из контейнера Container.Removes a component from the Container.

(Унаследовано от Container)
RemoveWithoutUnsiting(IComponent)

Удаляет компонент из контейнера Container, не устанавливая для узла Site значение null.Removes a component from the Container without setting Site to null.

(Унаследовано от Container)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)
ValidateName(IComponent, String)

Определяет, является ли имя компонента уникальным для этого контейнера.Determines whether the component name is unique for this container.

(Унаследовано от Container)

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

Дополнительно