Это приложение WinForms.
Между строками в таблицах TABLEA и TABLEB существует отношение «многие ко многим». В TABLELINK есть запись для каждой строки в TABLEA, связанной со строкой в TABLEB. Подумайте о «пользователях» и «ролях» или о чем-то подобном, где каждая запись TABLELINK указывает, что «пользователь X имеет роль Y».
Я просматриваю записи TABLEA, используя объекты привязки данных. Без проблем. Это не сетка, а просто форма с отдельными элементами управления TextBox.
Я хочу отобразить группу флажков, каждый из которых соответствует строке в TABLEB. Я хочу привязать данные TABLELINK к свойству «checked» каждого флажка, поэтому поле Y проверяется, когда мы смотрим на запись X, если и только если есть запись TABLELINK, соответствующая этим X и Y.
У меня чертовски много времени на создание этого отношения и привязку его к флажкам, которые должны быть созданы во время выполнения, потому что дизайнер не знает, сколько их будет. Концептуально в SQL это select count(*) from tableb left join tablelink on tableb.y = tablelink.y where tablelink.x = ? group by tableb.y, но я не знаю, как связать это с отдельными флажками.
Мой вопрос состоит из двух частей: а) правильно ли я спроектировал это для начала? б) Если да, то как мне связать результаты этого запроса (или аналогичного) с отдельными флажками?