2016-08-09 6 views
1

Как удалить столбец из моего DataGridView после привязки к свойству DataSource?Как удалить столбец привязки из DataGridView?

Например, мой объект:

public class A 
{ 
    int a; 
    int b; 
    int c; 
} 

Тогда я делаю:

List<A> aList = new List<A>(); 

//add some values in aList 

myDataGridView.DataSource = aList; 

Мой DataGridView показывает столбцы A, B и C, и я хочу удалить столбец C от список.

Любое предложение будет рассмотрено.

+0

Без модификации вашего класса? – Rahul

+0

Да .. Я использую это поле в своей бизнес-модели – guijob

+0

скрывать колунку недостаточно? – TaW

ответ

1

В качестве простого варианта вы можете украсить собственности с [Browsable(false)]. Таким образом, столбец не будет отображаться в сетке, когда ваши колонки автоматически генерируемый:

[Browsable(false)] 
public int c { get; set; } 

Также вы можете использовать атрибут Displayname также задать текст заголовка столбца, например, если вы украшаете свойство с [DisplayName("Some Text")] атрибутом , Некоторый текст будет отображаться как текст заголовка.

Другим простым решением является выбор список объектов, содержащих те свойства, которые нужно из исходного списка с помощью linq:

var aList = new List<A>(); 
dataGridView1.DataSource = aList.Select(x => new { a = x.a, b = x.b }).ToList(); 
+0

Атрибут, доступный для просмотра, был именно тем, что я искал. спасибо – guijob

2

Вы можете создать отдельный класс (DTO), который будет иметь только A и B. Затем создайте список этого класса и привяжите к gridview.

(OR)

Создание DataTable необходимой колонки -> заполнить DataTable, что и связать, что в качестве DataSource вашего GridView.

(OR)

держать столбец ограничен для вашего GridView, но это скрыть говоря

myDataGridView.Columns["C"].Visible = false; 
Смежные вопросы