C #: Datagridview не отображает данные - PullRequest
2 голосов
/ 29 апреля 2011

Я работаю над приложением winforms. В моей форме я просто перетаскиваю элемент управления DataGridView, а затем устанавливаю некоторые его свойства с помощью окна свойств. Ниже приведен код, который я использую для заполнения моего DataGridView. Я написал этот код внутри конструктора.

List<MyCustomClass> lst = new List<MyCustomClass>();
lst = LoadList(/*some params here*/);//now uptil this point everything works i.e the list contains values as desribed.
dataGridView1.DataSource = lst;

Проблема в том, что при запуске программы в моем DataGridView ничего не отображается.

Для получения более подробной информации следующий код представляет свойства, которые я установил с помощью окна свойств

        this.dataGridView1.AllowUserToAddRows = false;
        this.dataGridView1.AllowUserToDeleteRows = false;
        this.dataGridView1.AllowUserToResizeRows = false;
        this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
        this.dataGridView1.BackgroundColor = System.Drawing.Color.White;
        this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
        this.dataGridView1.GridColor = System.Drawing.Color.White;
        this.dataGridView1.Location = new System.Drawing.Point(2, 329);
        this.dataGridView1.Margin = new System.Windows.Forms.Padding(2);
        this.dataGridView1.MultiSelect = false;
        this.dataGridView1.Name = "dataGridView1";
        this.dataGridView1.RowHeadersVisible = false;
        this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
        this.dataGridView1.Size = new System.Drawing.Size(334, 106);
        this.dataGridView1.TabIndex = 0;

Ответы [ 5 ]

6 голосов
/ 08 марта 2013

Вы должны создать столбцы данных для вашей таблицы данных. Убедитесь, что вы также установили свойство «DataPropertyName» каждого столбца со свойством соответствующего элемента DataSource (то есть, свойство класса «MyCustomClass»).

3 голосов
/ 01 августа 2016

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

3 голосов
/ 29 апреля 2011

Добавьте этот код перед назначением источника данных, и все будет в порядке

dataGridView1.AutoGenerateColumns = true;

EDIT

Также проверьте, есть ли у вас открытые свойства, которые будут использоваться для отображения содержимого класса в виде столбцов в DataGridView

1 голос
/ 24 января 2017

При связывании в конструкторе возникают такие же проблемы. Но если я связываюсь в конструкторе, он хорошо работает

dataGridView1.DataSource = personBindingSource;
personBindingSource.DataSource = persons;
0 голосов
/ 28 апреля 2015

Поместите это в конце:

datagridview1.Databind();

Это должно сделать.

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