NestedContainer Класс

Определение

Предоставляет базовую реализацию интерфейса INestedContainer, позволяющую использовать компонент-владелец для контейнеров.

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

Комментарии

Класс NestedContainer представляет собой простую реализацию INestedContainer интерфейса , который определяет компонент, логически содержащий ноль или более других компонентов и принадлежащий родительскому компоненту. Поведение вложенных контейнеров отличается от стандартного Container несколькими способами, в том числе следующими:

  • Характеристики сайта, такие как DesignMode и GetService , направляются через сайт компонента-получателя.

  • Свойство сайта Name — это полное имя, включающее имя владеющего компонента, за которым следует точка (.) и имя дочернего компонента.

  • GetService обеспечивает поддержку для как INestedContainer услуги.

  • При удалении компонента-хозяйки контейнер также удаляется.

Кроме того, разработчики по-разному обрабатывают вложенные контейнеры. Узел конструктора заинтересован только в одном контейнере , связанном с узлом. Таким образом, события добавления и удаления компонентов не вызываются при добавлении компонента во вложенный контейнер или удалении из него. Однако, поскольку службы передаются во вложенный контейнер, события изменения компонента возникают при изменении компонента во вложенном контейнере.

Это различие в отслеживании событий также влияет на функциональность отмены, которая тесно связана с сериализацией. Стандартный обработчик отмены использует для IReferenceService отслеживания изменений, внесенных в компоненты. Если подсистеме отмены не удается определить имя компонента с помощью службы ссылок, подсистема проигнорирует любые изменения для этого компонента. Эта служба автоматически распознает изменения в автономных компонентах только в том случае, если они предоставляются в качестве общедоступных свойств только для чтения с тем же именем в их владельцах. В противном случае разработчик должен передать события изменения компонентов владельцу. Например, если свойство вложенного компонента Text вновь отображается в компоненте-владельце Address как свойство, то при Text изменении свойства изменение свойства должно быть выполнено программным способом для соответствующего Address свойства, иначе это изменение не будет отслеживаться с помощью отмены.

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

NestedContainer(IComponent)

Инициализирует новый экземпляр класса NestedContainer.

Свойства

Components

Получает все компоненты в контейнере Container.

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

Возвращает компонент-владелец для этого вложенного контейнера.

OwnerName

Возвращает имя компонента-владельца.

Методы

Add(IComponent)

Добавляет заданный объект Component в Container. Компонент добавляется без имени.

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

Добавляет указанный Component в Container и присваивает ему имя.

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

Создает внутри контейнера узел для компонента.

Dispose()

Освобождает все ресурсы, занятые модулем Container.

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

Освобождает ресурсы, используемые вложенным контейнером.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

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

Служит хэш-функцией по умолчанию.

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

Получает объект службы указанного типа, если он доступен.

GetType()

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

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

Создает неполную копию текущего объекта Object.

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

Удаляет компонент из контейнера Container.

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

Удаляет компонент из контейнера Container, не устанавливая для узла Site значение null.

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

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

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

Определяет, является ли имя компонента уникальным для этого контейнера.

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

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

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