C#:通过DataSet将XML绑定到ComboBox

sam*_*nai 0 c# xml dataset

我试图让这段代码工作大约2个小时=(我是C#的新手,并不知道所有的.NET库类.

目标是将XML数据填充到comboBox

DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable("table1");
dataTable.Columns.Add("col1", typeof(string));
dataSet.Tables.Add(dataTable);

StringReader strR = new StringReader("<root><parm1>val1</parm1><parm2>val2</parm2></root>");

dataSet.ReadXml(strR);

comboBox1.DataSource = dataSet.Tables[0];
comboBox1.DisplayMember = "col1";
comboBox1.ValueMember = "col1";
Run Code Online (Sandbox Code Playgroud)

好吧,它没有按预期工作.ComboBox应显示val1 val2

我真的不明白DataSet中DataTable的列名如何与XML-Tags相关......也许这就是重点?

先感谢您!

pma*_*lee 5

以下应该有效:

DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable("table1");
dataTable.Columns.Add("col1", typeof(string));
dataSet.Tables.Add(dataTable);

StringReader strR = new StringReader("<root><table1><col1>val1</col1></table1><table1><col1>val2</col1></table1></root>");

dataSet.ReadXml(strR);

comboBox1.DataSource = dataSet.Tables[0];
comboBox1.DisplayMember = "col1";
comboBox1.ValueMember = "col1";
Run Code Online (Sandbox Code Playgroud)

表和列的名称需要在C#对象和XML数据之间保持一致.