我有DataGrid
( dg1 )绑定到DataTable
( DataSet.Tables )。
代码运行正常,DataGrid
正在DataTable
正确显示数据。
但是,如果我Clear()
DataTable
,DataGrid
也很清楚,但只留下一个空行,我不知道如何摆脱它。我已经清除了DataTable。这个空行来自哪里?
SqlCeDataAdapter da = new SqlCeDataAdapter();
string sqlStr = @"SELECT * FROM FooTable";
da.SelectCommand = new SqlCeCommand(sqlStr, conn);
da.Fill(ds, "FooTable");
/* get data table reference */
dt = ds.Tables["FooTable"];
DataRow newRow = dt.NewRow();
newRow["FooName"] = "Donkey";
dt.Rows.Add(newRow);
dg1.ItemsSource = ds.Tables[0].DefaultView;
dt.Clear();
答案 0 :(得分:6)
该行通常是NewItemPlaceholder,用于在绑定集合中创建新项目。您应该尝试将CanUserAddRows
设置为false
。
答案 1 :(得分:1)
显示的空行可能是由于在datagrid中默认情况下,最后一行中存在空行,以便用户可以添加新行。 试着做 dataGridView1.AllowUserToAddRows = false;
答案 2 :(得分:0)
@Abdul Muqtadir:正确的解释。
以下代码可以满足您的需求:
dataGridView1.AllowUserToAddRows = false;
dataGridView1.DataSource = null;
对于Datagrid,您应该将DataGrid.CanUserAddRows设置为false;