Похоже, ваш подход к этой проблеме не оптимален.
Понятие «комбо-бокс» обычно не является чем-то, что вы хотите связать с вашими конструкциями базы данных.
Создайте свое приложение с целью моделирования "концепций" вашего домена на одном уровне приложения в виде классов.Если некоторые из этих данных часто необходимы и редко меняются, вы можете захотеть реализовать кэширование некоторых из этих данных.Впоследствии вы можете создать свой пользовательский интерфейс и связать комбинированные списки с необходимыми списками и коллекциями, предоставляемыми вашей моделью предметной области.
Редактировать: Если вы действительно хотите использовать какой-то неотъемлемый аспект комбинированного списка в качестве параметра в базе данных (для получения элементов), тогда, я думаю, вы могли бы рассмотреть возможность использования свойства Tag элемента управления для этого.Эта стратегия позволяет вам иметь несколько комбинированных списков в одной форме с одинаковыми параметрами (например, несколько комбинаций Да / Нет или Открытые / Закрытые) без необходимости иметь дело с конфликтами именования / уникальности.
- Создайте метод, например
GetComboSourceData()
, который принимает System.Windows.Forms.ControlCollection
в качестве параметра. - Внутри этого метода итерируйте элементы управления, ища комбинированные списки.Если у них установлено свойство Tag, отправьте этот тег в качестве параметра в запрос к вашей базе данных.Назначьте возвращенный набор данных в качестве источника данных для отдельных комбинаций.
- При загрузке форм обязательно вызовите
GetComboSourceData(this.Controls)
для заполнения ваших комбинаций.