Создать собственный DataTable, который можно привязать к элементам управления WinForms? - PullRequest
1 голос
/ 25 августа 2011

Наш магазин в основном использует «объекты ADO» (я имею в виду DataSet, DataTable и DataRow) для маршалинга вокруг данных и манипулирования ими на формах и в сетках. Мы экспериментируем с созданием аналогов магазина с собственными объектами ADO, чтобы мы могли навязать им свои собственные стандарты.

Реализация этого проста с одним исключением: я хочу, чтобы наши объекты были привязаны к элементам управления.

Мне известны IList, IBindingList, BindingSource и т. Д., И я рассмотрел и экспериментировал с ними, но я не смог сделать класс без имен жестких свойств bindable. Собственные объекты ADO по умолчанию не являются строго типизированными. У вас есть значения столбцов, к которым вы обращаетесь через свойство Item (например, row("Age") или row.Item("Age")). Я нашел примеры обязательных онлайн-ссылок со строго типизированными объектами (например, row.Age). По сути, мы хотим создать пользовательские объекты ADO (не унаследованные от нативных), которые по-прежнему сохраняют способность привязываться к элементам управления.

Есть ли простой пример того, как это можно реализовать?

В сетке я ожидаю увидеть столбцы Name, Age и Occupation из строки, в которой эти свойства отображаются через row("Name"), row("Age") и row("Occupation"). Это должно быть выполнимо, поскольку именно это обеспечивают нативные DataTable и DataRow.

Это уточнение предыдущего вопроса .

1 Ответ

0 голосов
/ 25 августа 2011

Кажется, вам нужно использовать интерфейс ITypedList, который работает в сочетании с PropertyDescriptor. Самая ясная статья, которую я нашел по этому вопросу, здесь:

http://blog.lab49.com/archives/705

Некоторое время назад я пытался сделать это сам, и попробую еще раз, основываясь на этой статье.

...