источник данных как только для чтения - C # - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть DataGridView со свойствами DataSource = datatable() и readonly = false.readonly должно быть false, поскольку есть другие столбцы, которые можно редактировать.Как сделать все столбцы в DataSource доступными только для чтения (не редактируемыми)?

Код выглядит следующим образом:

type = new DataGridViewComboBoxColumn();
        table= new DataGridView
                         {
                             DataSource = datatable(), // this returns a DataTable object
                             AllowUserToAddRows = false,
                             AllowUserToDeleteRows = false,
                             RowHeadersVisible = false,
                             MultiSelect = false,
                             Name = "AgentTable",
                             AutoSize = true,
                             ReadOnly = false,
                         };
        table.Columns.Add(CreateStartButton());        
        type.Items.Add(" some table");
        type.ReadOnly = false;
        table.Columns.Add(type);

РЕДАКТИРОВАТЬ: сетка данных будет содержать 4 столбца.

  • Первый столбец, каждая ячейка является кнопкой (только для чтенияимеет значение)
  • второй столбец, каждая ячейка представляет собой раскрывающийся список (readonly - ложь)
  • третий и четвертый столбцы создаются как объект DataTable, поэтому (readonly должно быть истинным)

поэтому у меня вопрос, как сделать третий и четвертый столбец доступными только для чтения?

1 Ответ

0 голосов
/ 30 ноября 2011

Должно быть легко перебрать столбцы после их создания. Я бы использовал что-то вроде этого, но я называю это псевдокодом, потому что я не знаю, является ли DataColumn правильным типом данных:

foreach(DataColumn col in table.Columns) {
    col.ReadOnly = true;
}
...