Динамически создаваемый Dev Express DataGridView не содержит данных после настройки DataSource - PullRequest
1 голос
/ 16 марта 2020

Я создал GridControl и GridView с дизайнером и установил источник данных, и все работает отлично. Однако когда я создаю в коде новый GridControl и новый GridView, назначенный этому GridControl, и правильно устанавливаю свойство DataSource, то GridView не содержит данных, а RowCount возвращает 0. Любые идеи?

 public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        gridControl1.DataSource = StraddleDataHandler.Data;

        GridControl g1 = new GridControl();

        g1.DataSource = StraddleDataHandler.Data;

        GridView v1 = new GridView(gridControl1);

        Console.WriteLine(v1.RowCount);
    }
}

Все работает нормально когда я устанавливаю свойство DataSource в своем созданном вручную элементе управления сеткой в ​​конструкторе, есть идеи?

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Вам нужно установить BindingContext для GridControl, прежде чем он сгенерируется.

g1.BindingContext = this.BindingContext;
0 голосов
/ 17 марта 2020

Вид сетки не отображается вместе с вашим кодом - каким бы ни был вид сетки по умолчанию (основной), даже если вы создали второй вид.

В результате Dev Express мудро (на мой взгляд) не стоит отображать сетку, поскольку она не отображается.

Если вы сделаете ваш вид основным, я думаю, вы увидите строки.

GridView v1 = new GridView(gridControl1);
int before = v1.RowCount;  // 0, per your example
gridControl1.MainView = v1;
int after = v1.RowCount;   // now should have the correct rowcount

Просто любопытно, а ты хотел сделать это вместо этого?

GridView v1 = new GridView(g1);  // instead of gridControl1?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...