【发布时间】:2020-08-14 09:26:54
【问题描述】:
我在设计器视图中创建了一个 datagridview 并向其中添加了列。我的问题是如何从我的 DataTable 对象访问这些列,而不是再次手动将列添加到 Datatable 中(重新使用从 Datatable 上的 datagridview 添加的列)。这就是到目前为止所做的事情
void loadData()
{
dt = new DataTable();
dt.Rows.Add(new object[] { "Argentina", 2000 });
dt.Rows.Add(new object[] { "Belgium", 4500 });
dataGridView1.DataSource = dt;
}
我需要使用 BindingSource 类来过滤数据,但我不知道我还能如何做到这一点,以便我从设计器中添加列并且能够过滤数据网格。 this 是我之前发布的帖子以获得有关如何过滤 datagridview 的帮助,但解决方案似乎必须使用数据源绑定数据。我需要维护设计器上应用于 datagridview 列的样式和格式
【问题讨论】:
-
您可以创建过滤后的数据表,然后将过滤后的表设为您的数据源:DataTable dt2 = dt.AsEnumerable().Where(x => your filter).CopyToDataTable();
-
@jdweng 那么我如何从 datagridview 设计器维护我的自定义列
-
那么如果你有第二个表 dt2 使用:foreach(DataRow row in dt2.AsEnumerable()) { dt.Rows.Add(new object[] { row[0], row[1]} ); }
-
@jdweng 我如何从 DataTable 访问 datagridview 列,这是没有得到的
-
视图可能没有重新绘制。诀窍是将数据源设置为空。 dataGridView1.DataSource = null; dataGridView1.DataSource = dt2;
标签: c# datagridview