2015-06-12 79 views
0

我來綁定組合框在Windows窗體代碼是這樣的添加默認項,組合框,而與數據集綁定數據 - WinForm的

ddlUsers.DataSource = dsUsers.Tables[0]; 
    ddlUsers.ValueMember = "userID"; 
    ddlUsers.DisplayMember = "Username"; 

我想添加一個deafult項目作爲第一個元素到ComboBox,我曾嘗試像這樣的東西

ddlUsers.Items.Insert(0, "-Select a user-"); 

但它會拋出這樣的錯誤。

Items collection cannot be modified when the DataSource property is set. 

任何人都可以指出正確的方法來實現這一目標嗎?

回答

2

您必須添加行的表是這樣的:

DataRow newRow = dataSet1.Tables[0].NewRow(); 

newRow["userID"] = 0; 
newRow["Username"] = "-Select a User-"; 

dataSet1.Tables[0].Rows.Add(newRow); 

,然後給源組合:

欲瞭解更多信息,請參閱this MSDN article

0

您可以先將dsUsers.Tables [0]的內容插入List,然後添加您的手動項目,然後將該List作爲DataSource而不是dsUsers.Tables [0]直接綁定。

0

插入在新最佳。

dr = dsUsers.Tables[0].NewRow(); 
dr[userID] = "0"; 
dr[Username] = "-Select a User-"; 
dsUsers.Tables[0].Rows.InsertAt(dr,0); 

,你可以設置你的源和往常一樣

ddlUsers.DataSource = dsUsers.Tables[0]; 
ddlUsers.ValueMember = "userID"; 
ddlUsers.DisplayMember = "Username"; 
1

請試試這個:

DataTable dt = (DataTable)cmbControl.DataSource; 
     DataRow dr = dt.NewRow(); 
     dr["UserName"] = "---Select User----"; 
     dr["UserID"] = "0"; 

     dt.Rows.InsertAt(dr, 0); 

插入行的數據表和使用方法InsertAt