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 представляет собой простую реализацию 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 значение |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
ValidateName(IComponent, String) |
Определяет, является ли имя компонента уникальным для этого контейнера. (Унаследовано от Container) |