Не могу отметить флажок как истинный в dataGridView - PullRequest
0 голосов
/ 21 ноября 2019

У меня есть dataGridView, который заполняется данными из базы данных EF:

efcontext.Users.Load();
dataGridView1.DataSource = ctx.Users.Local.ToBindingList();

Затем я добавляю к нему столбец

DataGridViewCheckBoxColumn newCol = new DataGridViewCheckBoxColumn();
DataGridViewCheckBoxCell cell = new DataGridViewCheckBoxCell();
cell.IndeterminateValue = false;
cell.TrueValue = true;
cell.FalseValue = false;
newCol.CellTemplate = cell;
newCol.HeaderText = "Select";
newCol.Name = "selected";
newCol.Visible = true;
newCol.ValueType = typeof(bool);
dataGridView1.Columns.Add(newCol);

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

for (int i = 0; i < dataGridView1.RowCount; i++)
{
    DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells["selected"];
    if(something)
    {
        chk.Value = true;
    }
    else
    {
        chk.Value = false;
    }

Но это ничего не меняет. Я попытался обновить dataGridView позже, а также вместо true я использовал chk.TrueValue, но это также не сработало. Как я могу пометить флажки как истинные? Это не просто проблема с визуальной стороной отмеченного флажка, поскольку после извлечения этих строк все они ложные, поэтому проблема связана как со значением этой ячейки, так и с ее графическим представлением.

ОБНОВЛЕНИЕ 1: Мне не нужно менять сущности в EF, только значения ячеек в dataGridView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...