Поддержка отложенной инициализации при помощи ISupportlnitialize

он несколько схож с интерфейсом

На данном этапе вам нужно еще реализовать интерфейс ISupportlnitialize, Определенный в пространстве имен System.ComponentModel. Этот интерфейс, обсуждавшийся в главе 7, позволяет отложить некоторые шаги инициализации, пока не будут инициализированы все взаимосвязанные свойства вашего элемента управления, устанавливаемые в конструкторе, после чего они вступают в силу одновременно. Он несколько схож с интерфейсом IDisposable В том, что когда вы создаете класс, содержащий уничтожаемые объекты, вы должны сделать сам класс уничтожаемым и делегировать вызовы его метода Dispose Инкапсулированным объектам. Если ваш элемент управления содержит объекты, которые могут инициализироваться, вы должны сделать его инициализируемым и делегировать инициализацию инкапсулированным объектам. Для этого добавьте к вашему определению класса интерфейс ISupportlnitialize И предусмотрите в классе реализацию всех методов интерфейса, делегируя их вызовы реализациям источника привязки и сетки: Это позволит вам контролировать порядок инициализации элементов управления, а также даст возможность контролировать при необходимости свою собственную пакетную инициализацию. Я добавил еще в класс булев флаг Reinitializing. Его можно использовать в качестве сигнала для ваших методов, показывающего, что вы находитесь в процессе инициализации, что нам вскоре пригодится. Я решил также сначала завершать инициализацию источника привязки, а затем сетки, что имеет свой смысл: источник данных сетки должен быть инициализирован прежде, чем сетка попытается завершить свой процесс привязки к этому источнику данных размещенный на форме. Конструктор должен создать за вас на форме несколько объектов: экземпляр набора данных с именем CustomersDataSet, Источник привязки с именем CustomersBindingSource И адаптер таблицы с именем CustomersTableAdapter. Он также соответствующим образом подключит их, установит свойства Datasource И DataMember Вашего элемента управления для работы с генерированными объектами данных, и добавит строчку кода в обработчик события Load Формы, чтобы заполнить набор данных при помощи адаптера.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *