Как программно добавить элемент checkedit в gridview в devexpress

Я хочу привязать DataTable к BindingSource, который затем привязывается к GridControl. Как добавить элемент управления checkedit после создания DataTable?

У меня есть приложение Windows Devexpress, которое в дизайнере,

  1. СеткаКонтроль
  2. BindingSource

Источником данных этого GridControl является bindingsource1.

У меня есть следующее в событии page_Load,

        DataTable dt = new DataTable();
        dt.Columns.Add("FirstName");
        dt.Columns.Add("Age");

        dt.Rows.Add("rambo", 60);
        dt.Rows.Add("Arnie", 35);
        bindingSource1.DataSource = dt;
        gridView1.RefreshData();

        gridView1.Columns.Add(
            new DevExpress.XtraGrid.Columns.GridColumn()
            {
                Caption = "Selected",
                ColumnEdit = new RepositoryItemCheckEdit() { },
                Visible = true,
            }
            );

К сожалению, это не работает. Есть идеи?


person user532104    schedule 01.03.2012    source источник


Ответы (2)


На самом деле, я думаю, вы очень близки. Попробуйте внести следующие изменения:

        DataTable dt = new DataTable();
        dt.Columns.Add("FirstName");
        dt.Columns.Add("Age");

        dt.Rows.Add("rambo", 60);
        dt.Rows.Add("Arnie", 35);
        bindingSource1.DataSource = dt;
        gridControl1.DataSource = bindingSource1;
        gridView1.RefreshData();

        gridView1.Columns.Add(
            new DevExpress.XtraGrid.Columns.GridColumn()
            {
                Caption = "Selected",
                ColumnEdit = new RepositoryItemCheckEdit() { },
                VisibleIndex = 0,
                UnboundType = DevExpress.Data.UnboundColumnType.Boolean
            }
            );

Обратите внимание, что все, что я изменил, это видимый индекс и установка типа несвязанного столбца. Технически, я считаю, что все, что вам нужно, это свойство visibleIndex, установленное там, где вы хотите, чтобы оно отображалось.

person Jay    schedule 01.03.2012

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

DataTable dt = new DataTable();
dt.Columns.Add("FirstName", typeof(System.String));
dt.Columns.Add("Age", typeof(System.Int32));
dt.Columns.Add("Selected", typeof(System.Boolean));

dt.Rows.Add("rambo", 60, true);
dt.Rows.Add("Arnie", 35, false);

gridView1.OptionsBehavior.AutoPopulateColumns = true;
bindingSource1.DataSource = dt;
gridControl1.DataSource = bindingSource1;
person kenrogers    schedule 01.03.2012
comment
Эй, Кен, спасибо за это. К сожалению, это не совсем то, что мне нужно. Результат в порядке, но мне нужно добавить элемент управления CheckEdit отдельно. Хорошая попытка, хотя - person user532104; 01.03.2012