Как программно добавить элемент управления checkit к сетке в devexpress - PullRequest
1 голос
/ 01 марта 2012

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

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

  1. GridControl
  2. BindingSource

Этот источник данных GridControl является связующим источником1.

У меня есть следующее в событии 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,
            }
            );

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

Ответы [ 2 ]

2 голосов
/ 02 марта 2012

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

        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, установленное там, где вы хотите, чтобы оно появилось.

0 голосов
/ 01 марта 2012

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

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;
...