当DataTable为空时,DataGrid显示一个空行

时间:2011-04-28 08:35:48

标签: c# wpf datatable

我有DataGrid dg1 )绑定到DataTable DataSet.Tables )。 代码运行正常,DataGrid正在DataTable正确显示数据。

但是,如果我Clear() DataTableDataGrid也很清楚,但只留下一个空行,我不知道如何摆脱它。我已经清除了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();

enter image description here

3 个答案:

答案 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;