C# DataGrid在DataTable为空时显示空行
我有一个C# DataGrid在DataTable为空时显示空行,c#,wpf,datatable,C#,Wpf,Datatable,我有一个DataGrid(dg1)绑定到DataTable(DataSet.Tables)。 代码运行正常,DataGrid正确显示了DataTable中的数据 但是,如果我Clear()这个DataTable,这个DataGrid也是清晰的,但是只剩下一行空的,我不知道如何去掉它。我已经清除了数据表。这一空排是从哪里来的 SqlCeDataAdapter da = new SqlCeDataAdapter(); string sqlStr = @"SELECT * FROM FooTable
DataGrid
(dg1)绑定到DataTable
(DataSet.Tables)。
代码运行正常,DataGrid
正确显示了DataTable
中的数据
但是,如果我Clear()
这个DataTable
,这个DataGrid
也是清晰的,但是只剩下一行空的,我不知道如何去掉它。我已经清除了数据表。这一空排是从哪里来的
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();
显示的空行可能是因为默认情况下,在datagrid中,空行位于最后一行,以便用户可以添加新行。 试着做
dataGridView1.AllowUserToAddress=false 该行通常是NewItemPlaceholder,用于在绑定集合中创建新项。您应该尝试将设置为
false
@Abdul Muqtadir:正确的解释
下面的代码将执行您正在查找的操作:
dataGridView1.AllowUserToAddRows = false;
dataGridView1.DataSource = null;
对于Datagrid,应将Datagrid.CanUserAddRows设置为false 你把datagrid的allowaddrow属性设置为false了吗?@Jonathan,我把它设置为false。仍然保留空行。奇怪。顺便说一句,allowdrop和它有什么关系?他说AllowDrow,不是allowdrop…DataGrid.H.B中没有AllowDrow方法。是正确的,只需调用它。mydatagridctrl.CanUserAddRows=false;我需要您的代码隐藏(在初始化Component()之后)