2011-04-28 85 views
2

我有一个DataGridDG1)结合一个DataTableDataSet.Tables)。 代码运行正常,DataGrid正确显示DataTable中的数据。数据网格显示一个空行数据表时是空

但是,如果我 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

+0

你是否将datagrid的allowaddrow属性设置为false? – Jonathan 2011-04-28 08:37:45

+0

@Jonathan,我把它设置为false。仍坚持空行。奇怪。顺便说一句,allowdrop与它有什么关系..? – KMC 2011-04-28 08:40:16

+1

他说AllowAddRow,不AllowDrop ... – 2011-04-28 08:43:55

回答

6

该行通常是NewItemPlaceholder,用于在绑定集合中创建新项目。您应该尝试将CanUserAddRows设置为false

+1

H.B.是正确的只是调用this.mydatagridctrl.CanUserAddRows = false;我的代码隐藏(在InitializeComponent();之后) – blindmeis 2011-04-28 08:53:32

1

所显示的空行,可能是由于该原因,默认情况下DataGrid中,空行是没有在最后,使用户可以添加新行。 尝试做 dataGridView1.AllowUserToAddRows = false;

0

@Abdul Muqtadir:正确的解释。

下面的代码会做你在找什么:

dataGridView1.AllowUserToAddRows = false; 
    dataGridView1.DataSource = null; 

为Datagrid的你应该设置DataGrid.CanUserAddRows为false;

相关问题