Элемент управления ListObject
Элемент управления ListObject представляет собой список с событиями и возможностью привязки к данным.При добавлении списка на лист Visual Studio создает элемент управления ListObject, который можно запрограммировать напрямую, не обращаясь к объектной модели Microsoft Office Excel.
Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для Excel 2013 и Excel 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.
Создание элемента управления
В проектах уровня документа можно добавлять элементы управления ListObject на лист во время разработки или во время выполнения.В проектах уровня приложения элементы управления ListObject добавляются на листы только во время выполнения.Дополнительные сведения см. в разделе Практическое руководство. Добавление элементов управления ListObject на листы.
Примечание |
---|
По умолчанию динамически созданные объекты списка не сохраняются как ведущие элементы управления на листе при его закрытии.Дополнительные сведения см. в разделе Добавление элементов управления в документы Office во время выполнения. |
Привязка данных к элементу управления
Элемент управления ListObject поддерживает простую и сложную привязку данных.Элемент управления ListObject можно привязать к источнику данных с помощью свойств DataSource и DataMember во время разработки или с помощью метода SetDataBinding во время выполнения.
Примечание |
---|
Если элемент управления ListObject привязан к источнику данных, например к объекту DataTable, при изменении данных в котором возникают события, он обновляется автоматически.Если элемент управления ListObject привязан к источнику данных, при изменении данных в котором события не возникают, то для обновления элемента управления ListObject необходимо вызвать метод RefreshDataRow или RefreshDataRows. |
При добавлении в ячейку листа элемента управления ListObject путем сопоставления с этой ячейкой повторяющегося элемента схемы Visual Studio автоматически сопоставляет ListObject созданному набору данных.Однако элемент управления ListObject не привязывается к данным автоматически.Можно привязать элемент управления ListObject к набору данных в проекте уровня документа во время разработки или во время выполнения.Можно программно выполнить привязку элемента управления ListObject к набору данных в надстройке уровня приложения во время выполнения.
Поскольку данные отделены от элемента управления ListObject, добавлять и удалять данные следует через привязанный набор данных, а не напрямую через элемент управления ListObject.Если данные в привязанном наборе обновляются каким-либо способом, изменения отражаются в элементе управления ListObject автоматически.Дополнительные сведения см. в разделе Привязка данных к элементам управления в решениях Office.
Чтобы быстро заполнить элемент управления ListObject данными, привяжите его к источнику данных.При изменении данных в привязанном к данным элементе управления ListObject эти изменения автоматически вносятся в источник данных.Если необходимо заполнить данными элемент управления ListObject и разрешить пользователю изменять данные в элементе управления ListObject, не изменяя при этом источник данных, вызовите метод Disconnect, чтобы отключить элемент управления ListObject от источника данных.Дополнительные сведения см. в разделе Практическое руководство. Заполнение данными элементов управления ListObject.
Примечание |
---|
Привязка данных не поддерживается для перекрывающихся элементов управления ListObject. |
Увеличение производительности в элементах управления ListObject
Если сначала был привязан элемент управления ListObject, а затем вызван метод ReadXml для заполнения набора данных, то считывание XML-файла в этот элемент управления происходит довольно медленно.Для улучшения производительности рекомендуется сначала вызывать метод ReadXml, а потом привязывать элемент управления.
Отключение элементов управления ListObject от источника данных
После заполнения элемента управления ListObject данными путем привязки его к источнику данных можно отключить этот элемент управления, чтобы изменения, вносимые в данные объекта списка, не влияли на источник данных.Дополнительные сведения см. в разделе Практическое руководство. Заполнение данными элементов управления ListObject.
Восстановление порядка столбцов и строк
При привязке данных к элементу управления ListObject, добавленному к документу во время разработки, Visual Studio отслеживает столбец и строку при каждом сохранении книги.Если пользователь перемещает столбцы или строки объекта ListObject во время выполнения, то новый порядок сохраняется при следующем открытии книги, а элемент управления ListObject повторно выполняет привязку к источнику данных.
Чтобы восстановить для ListObject исходный порядок столбцов и строк, необходимо вызвать метод ResetPersistedBindingInformation.Этот метод удаляет пользовательские свойства документа, связанные с порядком столбцов и строк указанного объекта ListObject.Вызовите этот метод из события книги Shutdown, если сохранение порядка столбцов и строк ListObject не требуется.
Форматирование
Форматирование, применяемое к элементу Microsoft.Office.Interop.Excel.ListObject, можно применять и к элементу управления Microsoft.Office.Tools.Excel.ListObject.Это относится к границам, шрифтам, числовому формату и стилям.Конечные пользователи могут изменять порядок столбцов в привязанном к данным элементе управления ListObject, и эти изменения останутся в документе при условии, что элемент управления ListObject был добавлен в документ во время разработки.При следующем открытии документа объект списка будет привязан к тому же источнику данных, однако порядок столбцов будет соответствовать внесенным пользователем изменениям.
Добавление и удаление столбцов во время выполнения
Во время выполнения нельзя вручную добавлять или удалять столбцы из привязанного к данным элемента управления ListObject.Если конечный пользователь попытается удалить столбец, этот столбец будет сразу же восстановлен, а добавленные столбцы будут удалены.Таким образом, важно написать код, объясняющий пользователям, почему нельзя выполнять подобные действия для привязанного к данным элемента управления ListObject.Visual Studio предоставляет несколько событий для элемента управления ListObject, относящихся к привязке данных.Например, событие OriginalDataRestored можно использовать для предупреждения пользователей о том, что данные, которые они пытаются удалить, удалять нельзя, и поэтому такие данные будут восстановлены.
Добавление и удаление строк во время выполнения
В привязанный к данным элемент управления ListObject можно вручную добавлять и удалять строки при условии, что источник данных позволяет добавлять новые строки и не предназначен только для чтения.Можно написать код для таких событий, как BeforeAddDataBoundRow, который будет проверять данные.Дополнительные сведения см. в разделе Практическое руководство. Обработка данных при добавлении новой строки в элемент управления ListObject.
Иногда связь объекта списка с источником данных вызывает ошибки выполнения.Например, можно указать, какие столбцы будут отображаться в элементе управления ListObject, чтобы, если Вы опустите столбцы с ограничениями, такими как поле, которое не может принимать нулевые значения, ошибки будут возникать каждый раз при создании строки.Можно написать код для добавления отсутствующих значений в обработчике событий для события ErrorAddDataBoundRow.
Переименование элементов управления ListObject в Excel
Приложение Excel позволяет пользователям переименовывать таблицы Excel во время выполнения с помощью вкладки Конструктор.Однако элемент управления ListObject не поддерживает эту возможность.Если пользователь пытается переименовать таблицу Excel, соответствующую элементу управления ListObject, при сохранении книги этой таблице автоматически присваивается исходное имя.
События
Для элемента управления ListObject доступны следующие события:
См. также
Задачи
Практическое руководство. Добавление элементов управления ListObject на листы
Практическое руководство. Изменение размера элементов управления ListObject
Практическое руководство. Сопоставление столбцов элемента управления ListObject данным
Практическое руководство. Заполнение данными элементов управления ListObject
Практическое руководство. Заполнение листов данными из базы данных
Основные понятия
Автоматизация Excel с помощью расширенных объектов
Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения
Добавление элементов управления в документы Office во время выполнения
Программные ограничения ведущих элементов и элементов управления ведущего приложения
Другие ресурсы
Образцы и пошаговые руководства разработки Office