首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从DataGridView中删除绑定列?

问如何从DataGridView中删除绑定列?
EN

Stack Overflow用户
提问于 2016-08-09 22:25:28
回答 2查看 1.3K关注 0票数 1

如何在绑定到DataGridView属性后从DataSource中删除列?

例如,我的对象是:

代码语言:javascript
复制
public class A 
{
    int a;
    int b;
    int c;
}

那我做的是:

代码语言:javascript
复制
List<A> aList = new List<A>();

//add some values in aList

myDataGridView.DataSource = aList;

我的DataGridView正在显示A、B和C的列,我希望从该列表中删除C列。

任何建议都将得到认可。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-10 13:44:53

作为一种简单的选择,您可以使用[Browsable(false)]来装饰该房产。这样,当您的列自动生成时,将不会在网格中显示该列:

代码语言:javascript
复制
[Browsable(false)]
public int c { get; set; }

此外,还可以使用Displayname属性设置列标题文本,例如,如果使用[DisplayName("Some Text")]属性装饰属性,一些文本将显示为标题文本。

另一个简单的解决方案是使用linq从原始列表中选择包含这些属性的对象列表。

代码语言:javascript
复制
var aList = new List<A>();
dataGridView1.DataSource = aList.Select(x => new { a = x.a, b = x.b }).ToList();
票数 1
EN

Stack Overflow用户

发布于 2016-08-09 22:29:50

您可以创建一个单独的类(DTO),它将只包含A和B。然后创建该类的列表并绑定到网格视图。

(或)

使用必要的列DataTable创建一个->,填充该数据表,并将其绑定为您的网格视图的DataSource。

(或)

将列保持在网格视图的范围内,但将其隐藏起来

代码语言:javascript
复制
myDataGridView.Columns["C"].Visible = false;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38861401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档