我想制作国家组合框,如何将此 XML 文件绑定到 ComboBox ,这是我的代码:
public class CountriesComboBox : ComboBox
{
public CountriesComboBox()
{
XDocument obj = XDocument.Load("countries.xml");
//DisplayMember = "countryiso";
//ValueMember = "countrycode";
DataSource = obj.Descendants("country").Select(x => new
{
countrycode = x.Attribute("code").Value,
countryiso = x.Attribute("name").Value
}).ToList();
}
}
这是我的XMl文件:
<countries>
<country code="AF" iso="4">Afghanistan</country>
<country code="AL" iso="8">Albania</country>
<country code="DZ" iso="12">Algeria</country>
<country code="AS" iso="16">American Samoa</country>
<country code="AD" iso="20">Andorra</country>
<country code="AO" iso="24">Angola</country> ....
答案 0 :(得分:0)
我相信你走的正确。
从你提问你正在尝试绑定到匿名类型。我从来没有尝试过,而且我宁愿为这种需要设置一个命名类。
答案 1 :(得分:0)
试试这个: -
public class CountriesComboBox : ComboBox
{
public CountriesComboBox()
{
XDocument obj = XDocument.Load("countries.xml");
//DisplayMember = "countryiso";
//ValueMember = "countrycode";
DataSource = obj.Descendants("country").Select(x => new
{
countrycode = x.Attribute("code").Value,
countryiso = x.Attribute("iso").Value
}).ToList();
}
}
使用x.Attribute("iso").Value
代替x.Attribute("name").Value
。
答案 2 :(得分:0)
我正在为WPF做这件事。
comboBox1.ItemsSource = xdoc.Root.Descendants("country").Select(x => x.Value);