2011-08-12 75 views
0

我有類的對象像組合框沒有綁定

MYDepartment myDepartment = new MYDepartment(); 

然後列出定義如下

Ilist<MYDepartment> listDepartment=new Ilist<MYDepartment>(); 

列表逐一

listDepartment.Add(myDepartment); 

現在我添加對象已定義DataTable和DataRow

DataTable dtDepartments=new DataTable(); 
DataRow dr = dtDepartments.NewRow(); 
dr["DepartmentID"] = myDepartment.DepartmentID; 
dr["Name"] = myDepartment.DepartmenrName; 
dr["Description"] = myDepartment.DepartmentDescription; 
dtDepartments.Rows.Add(dr); 

DepartmentForm azhaform = new DepartmentForm(); 
azhaform.combox1.DataSource = dtDepartments; 
azhaform.combobox1.ValueMember = "DepartmentID"; 
azhaform.combobox1.DisplayMember = "Name"; 

,但它並沒有表現出Combobox.Whats錯了螞蟻的事情與我的代碼 請幫助

回答

1

請您DisplayMember屬性到DepartmenrName

像這樣:

azhaform.combobox1.DisplayMember = "DepartmenrName"; 

你確定它沒有表現出什麼?它應該只顯示一個項目,因爲您只向源表格添加了一行。

編輯:對不起,我張貼上面的錯誤。我太習慣填充列表<> :)。我試過你的代碼,它工作正常。麻煩必須與別的東西。請取消我的票:)

0

雖然我還沒有與我的編輯檢查,但它似乎我已經修改了它下面一個小問題...

DepartmentForm azhaform = new DepartmentForm(); 
    azhaform.combobox1.DataSource = dtDepartments; 
    azhaform.combobox1.ValueMember = "DepartmentID"; 
    azhaform.combobox1.DisplayMember = "Name"; 
0

似乎有相當一你的代碼中幾乎沒有錯誤,所以我不確定我是否應該從字面上理解它(例如「combox1」與「combobox1」),但是我能夠立即看到的一個錯誤是,你正在設置數據源在組合框之前已經指定了ValueMember和DisplayMember。我還沒有測試過這是否會導致你的問題,但它絕對看起來是錯誤的。

0

這可能不是你想要的,但我用的BindingSource組件,只需點擊智能標籤在組合框和檢查使用數據綁定物品,接下來點擊usualy存檔此添加項目數據源和選擇對象在數據源窗體中,並選擇您的MYDepartment類。

Wizard

這機器會自動在窗體上添加的BindingSource組件(在我的VS它命名爲mYDepartmentBindingSource)。

組合框智能標籤

下一頁點擊一次做到這一點:

ComboBox Property

現在你可以添加數據:

mYDepartmentBindingSource.Add(new MYDepartment() { DepartmentID=1, DepartmenrName="Abc" }); 
    mYDepartmentBindingSource.Add(new MYDepartment() { DepartmentID = 2, DepartmenrName = "Bca" });