Как сделать чтобы в DataGrid(подключенная к таблице-запросу) определенный столбец показывал значения вместо (True, False) показывал Чекбоксы внутри столбиков? Возможно ли такое? И еще: возможно ли чтобы колонки были как бы DataCombo, т.е. раскрывающийся списки?
Если вникнуть во внутреннее строение DataGrid, то мы можем заметить,
что собственно отображением данных занимаются классы, производные от
DataDridColumnStyle. В .NET Framework таких классов 2:
DataGridTextBoxColumn (для отображения текста) и DataGridBoolColumn
(для отображения чекбоксов).
Для того, чтобы отображались чекбоксы, нужно провернуть следующее:
- создать DataGridTableStyle, указать MappingName - имя таблицы, в
которой этот столбец.
- создать DataGridBoolColumn, указать MappingName - имя столбца.
- добавить этот DataGridBoolColumn в созданный в первом шаге
DataGridTableStyle.ColumnStyles.
- добавить этот DataGridTableStyle в Datagrid.TableStyles.
Вроде всё... Хотя может где-то ошибся.
Если ты грузишь в dataset, к которому привязан datagrid схему, то
автоматически в колонках типа Boolean будут отображаться чекбоксы.
Насчёт вставки комбо: нужно просто сделать класс, наследующий от
DataGridColumnStyle и самому реализовать прорисовку ячеек, там уже
можно будет вставить что захочешь!
Элемент управления DataGrid позволяет установить для ячеек одной или нескольких колонок таблицы свойство Button, которое обеспечивает их работу в режиме "кнопок". Например, установи
DataGrid1.Columns.Item(1).Button = True
Тогда после щелчка мыши по ячейкам первой колонки будет выполняться событие ButtonClick. Можеш написать в этой процедуре любой код, например вывести список, который связана с данной ячейкой.