Поделиться через


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)

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

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