XElement Doc。
<forms xmlns="">
<form>
<id>1361</id>
<name>TEST3</name>
</form>
<form>
<id>1658</id>
<name>TEST4</name>
</form>
<form>
<id>1975</id>
<name>Mac New Patient</name>
</form>
<form>
<id>2209</id>
<name>Test Atlantic</name>
</form>
<form>
<id>2565</id>
<name>Rice Creek Test</name>
</form>
</forms>
代码
XElement xmlForms = data.GetXmlForm();
var ElementsList = from c in xmlForms.Element("Forms").Descendants("form")
select new { Name = c.Element("name").Value, ID = c.Element("id").Value };
cBox_NewPat.DataContext = ElementsList;
cBox_NewPat.DisplayMemberPath = "name";
cBox_NewPat.SelectedValuePath = "id";
我需要将数据(名称,id)从XElement绑定到WPF Combobox。由于某种原因,它无法正常工作,甚至无法将XML中的数据导入元素列表。
答案 0 :(得分:0)
属性名称区分大小写。
您需要更改
cBox_NewPat.DisplayMemberPath = "name";
cBox_NewPat.SelectedValuePath = "id";
要
cBox_NewPat.DisplayMemberPath = "Name";
cBox_NewPat.SelectedValuePath = "ID";
匹配您的匿名类型。
答案 1 :(得分:0)
看起来你在这里遗漏了几件事(除了空结果 - 我将在下面介绍)。
您需要在组合框上设置ItemsSource属性。
cBox_NewPat.ItemsSource = ElementsList
你应该使用
cBox_NewPat.DisplayMemberPath = "Name";
而不是
cBox_NewPat.DisplayMemberPath = "name";
因为您的匿名类型属性称为“名称”,而不是“名称”。与SelectedValuePath相同
请显示您在GetXmlForm方法中执行的操作 - 这是出错的地方。如果你执行XElement.Parse(xmlString),那么如果从forms元素中删除命名空间属性(xmlns),它将起作用。你还需要使用
xmlForms.Descendants("form")
而不是
xmlForms.Element("forms").Descendants("form")