2017-03-23 70 views
0

由於我得到dataRawView而不是值combobox,我想知道是否有可能將此datasetcomboboxcbMissAtt)綁定?將數據集綁定到ComboBox

我錯過了什麼?我閱讀了很多關於這方面的答案,但無法找到通過它的方式(因爲我明白我缺少設置DisplayMember,但我不知道如何爲此特定示例執行此操作)。

p.s.我發現這個代碼在某處,因爲我試圖從xml第一次填充cb。

 DataSet ds = new DataSet(); 
     DataTable dt = new DataTable("Root"); 

     dt.Columns.Add("text"); 
     dt.Columns.Add("value"); 
     ds.Tables.Add(dt); 
     foreach (DataColumn dc in dt.Columns) 
     { 
      dc.ColumnMapping = MappingType.Attribute; 
     } 
     //after I am reading and later closing stream 
     //part of code is missing because I think 
     //its not relevant for the question/answer(hopefully) 
     cbMissAtt.DataSource = ds.Tables[0]; 

很簡單xml

 <?xml version="1.0" encoding="UTF-8"?> 
     <Root> 
     <Field text="text.." value="dedication"></Field> 
     </Root> 

我打電話這種方法形式的constructor

回答

0

你可以試試下面的代碼:

cbMissAtt.DataBindings.Clear(); 
cbMissAtt.DataSource = ds.Tables[0]; 
cbMissAtt.DisplayMember = "value"; 
cbMissAtt.ValueMember = "text"; 

本應顯示的值在value列下,除非你有問題與您的dataset代碼。

+0

這不適用於我的情況:(我認爲數據集是好的:https://www.codeproject.com/Articles/6233/Populating-a-drop-down-control-from-an-XML-file。 –

+0

然後問題在於DataSource。 –

+0

找到它真的很愚蠢的問題。謝謝你的幫助! –

0

在XML文件,而不是<field></field>(初學者的錯誤:)):

<text>sometext</text> 
<value>somevalue</value> 

在代碼中加入過多:

cbMissAtt.DisplayMember = "value"; 
cbMissAtt.ValueMember = "text"; 

感謝P.帕特!

+1

幹得好!很高興你找到了你的問題的答案。 –