Привязка DataGridView к списку <>, некоторые свойства не должны отображаться - PullRequest
6 голосов
/ 23 мая 2009

Я пытаюсь привязать DataGridView к списку, где MyObject выглядит как

class MyObject
{
    public string Property1 { get; set; }
    public string Property2 { get; set; }
}

//List<MyObject> objects;
grid.Columns[0].DataPropertyName = "Property1";
grid.DataSource = objects;

Я хочу, чтобы отображалось только одно свойство, но вместо этого я добавил еще один столбец в DataGridView, где также отображается Property2. Как я могу предотвратить его добавление?

Ответы [ 3 ]

9 голосов
/ 23 мая 2009

Если вы никогда не хотите, чтобы это свойство отображалось:

class MyObject
{
    public string Property1 { get; set; }
    [Browsable(false)]
    public string Property2 { get; set; }
}

В противном случае, как уже было сказано - установите AutoGenerateColumns в false и добавьте их вручную.

2 голосов
/ 23 мая 2009

Похоже, что для свойства AutoGenerateColumns вашего элемента управления DataGridView установлено значение True. Вы можете установить его в False или использовать метод .Columns.Remove, чтобы удалить столбец, который вы не хотите видеть.

0 голосов
/ 23 мая 2009

Полагаю, вам нужно настроить столбцы вручную, как сказал Хенк. Однако вы можете установить больше свойств, чем в его примере. Вот что я сделал в проекте:

DataGridView dataGridView = new DataGridView();
dataGridView.AutoGenerateColumns = false;

DataGridViewColumn columnA = new DataGridViewTextBoxColumn();
columnA.DataPropertyName = "propertyA";
columnA.HeaderText = "Column A";
columnA.Name = "columnA";

DataGridViewColumn columnB = new DataGridViewTextBoxColumn();
columnB.DataPropertyName = "propertyB";
columnB.HeaderText = "Column B";
columnB.Name = "columnB";

dataGridView.Columns.Clear();
dataGridView.Columns.Add(columnA);
dataGridView.Columns.Add(columnB);
dataGridView.AutoResizeColumns();

Я считаю, что вышесказанное работает. Если вы получаете странную исключительную проверку, убедитесь, что для столбцов / ячеек определены стили ячеек по умолчанию.

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