Столбец флажка в DataGridView, построенный на основе запроса linq to Entities

#c# #entity-framework #linq #datagridview

#c# #entity-framework #linq #datagridview

Вопрос:

У меня есть DataGridView встроенный linq к сущностям. Я использовал Entity Framework для построения модели в представлении базы данных. Один столбец имеет тип bool, но DataGridView выдает мне текст «true» или «false». Я хочу отобразить эту информацию в столбце флажков. Но я не могу заставить DataGridView его изменить.

 public partial class view_1    
{

    public int ID { get; set; }

    public string PERSON { get; internal set; }

    public bool ACCEPT { get; set; }
}

sEntities context = new sEntities();

var lQuery = from p in context.view_1 select p;

DataGridView1.DataSource = lQuery.ToList();
 

Я ожидаю, что он будет CheckboxColumn связан с полем ACCEPT.

Комментарии:

1. Привет, я нашел решение своей проблемы (оно было на моей стороне). У меня есть тип с нулевым bool? значением, если я изменяю тип bool , я получаю CheckboxColumn вместо текста «True» или «False». Спасибо за помощь и исправление.

Ответ №1:

Следующий пример кода демонстрирует, как использовать столбец DataGridViewCheckBoxColumn, чтобы отметить, какие сотрудники находятся вне офиса. Этот пример является частью более крупного примера, доступного в разделе обзор класса DataGridViewComboBoxColumn.

 private void AddOutOfOfficeColumn()
{
    DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
    {
        column.HeaderText = ColumnName.OutOfOffice.ToString();
        column.Name = ColumnName.OutOfOffice.ToString();
        column.AutoSizeMode = 
            DataGridViewAutoSizeColumnMode.DisplayedCells;
        column.FlatStyle = FlatStyle.Standard;
        column.ThreeState = true;
        column.CellTemplate = new DataGridViewCheckBoxCell();
        column.CellTemplate.Style.BackColor = Color.Beige;
    }

    DataGridView1.Columns.Insert(0, column);
}
 

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridviewcheckboxcolumn?view=netframework-4.8

Или

Привязка datatable к DataGridView, имеющему столбец bool.

  1. Добавьте datatable в код:

    DataTable dtEmp = new DataTable();
    // добавить столбец в datatable
    dtEmp.Столбцы.Добавить(«IsMarried», typeof(bool));
    dtEmp.Столбцы.Добавить(«EmpID», typeof(int));
    dtEmp.Столбцы.Добавить(«EmpName», typeof(string));
    dtEmp.Столбцы.Добавить(«EmpCity», typeof(строка));

Здесь мы определили столбец bool, IsMarried .

  1. Добавление данных:

    dtEmp.Rows.Add(false, 111, «Devesh», «GZB»);
    dtEmp.Rows.Add(false, 222, «ROLI», «KANPUR»);
    dtEmp.Rows.Add(true, 333, «Rajesh», «NOIDa»);
    dtEmp.Rows.Add.Добавить(false,444, «NIKHIL», «KANPUR»);

  2. Сетка привязки:

DataGGridView1.DataSource = dtEmp;

  1. Запуск кода.

После запуска кода мы получим следующий экран:

Флажок автоматически добавляется в datagirdview из-за столбца Bool, определенного в таблицах данных:

введите описание изображения здесь

https://www.c-sharpcorner.com/UploadFile/deveshomar/adding-checkbox-column-in-datagridview-in-C-Sharp-window-forms/