如何在绑定到DataGridView属性后从DataSource中删除列?
例如,我的对象是:
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列。
任何建议都将得到认可。
发布于 2016-08-10 13:44:53
作为一种简单的选择,您可以使用[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();发布于 2016-08-09 22:29:50
您可以创建一个单独的类(DTO),它将只包含A和B。然后创建该类的列表并绑定到网格视图。
(或)
使用必要的列DataTable创建一个->,填充该数据表,并将其绑定为您的网格视图的DataSource。
(或)
将列保持在网格视图的范围内,但将其隐藏起来
myDataGridView.Columns["C"].Visible = false;https://stackoverflow.com/questions/38861401
复制相似问题