将数据集绑定到ComboBox

时间:2017-03-23 03:53:20

标签: c# xml data-binding combobox

当我在dataRawView中获得combobox而不是值时,我想知道是否可以将此dataset绑定到comboboxcbMissAtt)?

我错过了什么?我在这上面阅读了许多答案但是找不到我的方法(据我所知,我缺少设置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

中调用此方法

2 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

printch

除非您的cbMissAtt.DataBindings.Clear(); cbMissAtt.DataSource = ds.Tables[0]; cbMissAtt.DisplayMember = "value"; cbMissAtt.ValueMember = "text"; 代码存在问题,否则应显示value列下的值。

答案 1 :(得分:0)

在xml文件而不是<field></field>(初学者的错误:)):

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

也在代码中添加:

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

感谢P. Pat!