C# 我可以在DataGridView中添加DataTable而不使用DataSource属性吗
下面是一种将DataTable复制到DataGridView的方法,该方法不起作用,该方法只能在DataGridView中添加列和空的行。有谁能在不使用DataGridView的DataSource属性的情况下为我推荐解决方案吗C# 我可以在DataGridView中添加DataTable而不使用DataSource属性吗,c#,datagridview,datatable,C#,Datagridview,Datatable,下面是一种将DataTable复制到DataGridView的方法,该方法不起作用,该方法只能在DataGridView中添加列和空的行。有谁能在不使用DataGridView的DataSource属性的情况下为我推荐解决方案吗 public void CopyDataTableInDataGridView(DataTable table, DataGridView gdv) { if (gdv.Rows.Count > 0) gdv
public void CopyDataTableInDataGridView(DataTable table, DataGridView gdv)
{
if (gdv.Rows.Count > 0)
gdv.Rows.Clear();
if (table != null && table.Rows.Count > 0)
{
foreach (DataColumn _colm in table.Columns)
{
DataGridViewColumn _col;
if (_colm.GetType() == typeof(bool))
_col = new DataGridViewCheckBoxColumn();
else
_col = new DataGridViewTextBoxColumn();
_col.Name = _colm.ColumnName;
_col.HeaderText = string.Concat(_colm.ColumnName.Select(x => Char.IsUpper(x) ? " " + x : x.ToString())).TrimStart(' ');
gdv.Columns.Add(_col);
}
foreach (DataRow _row in table.Select())
{
//Rows getting added in dgv but not data
// By adding following line in Code my problem get solved
//object[] _items = _row.ItemArray;
gdv.Rows.Add(_row);
}
}
}
您正在尝试将DataRow添加到DataGridView,而不是添加DataGridViewRow 看看visualstudio的智能告诉您的DataGridView.Rows.Add()方法。其中有4项:
- Add()-将空行添加到DataGridView
- 添加(DataGridViewRow)-添加新行(这是您需要的)
- Add(count)-将空行的[count]添加到DataGridView
- Add(object[])添加新行并用值填充它(您也可以使用此选项)
下面是相关问题:在DataGridView中添加行之前添加以下行,我的问题得到解决
object[] _items = _row.ItemArray;
为什么不想使用
DataSource
属性?@gunr217,因为我想在DataGridView上执行大量操作,但DataSource限制了我这么做。我不太清楚为什么不想使用DataSource
属性。当前,您正在将每一行的添加到字符串实现中,而应该为该行的每一列添加一个数据数组。您可以通过查看在栅格视图中添加行的位置code@AnkushMadankar,我不明白DataSource
将如何限制您。请记住,您可以传入自定义的类
,而不仅仅是数据表
,作为数据。您可以先格式化类中的数据,然后插入类。