2011-04-28 106 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;

相關問題