C# 组合框绑定到WPF中的XML

C# 组合框绑定到WPF中的XML,c#,xml,wpf,xaml,data-binding,C#,Xml,Wpf,Xaml,Data Binding,我知道这个问题已经被问到了极点,但我已经尝试了很多我找到的建议答案,当我在VS2013中启动WPF时,组合框仍然没有填充。来了。我有一个名为People.XML的XML文档,它的格式如下 <?xml version="1.0" encoding="utf-8"?> <People> <Person> <personName>John Doe</personName> <personEmail>someon

我知道这个问题已经被问到了极点,但我已经尝试了很多我找到的建议答案,当我在VS2013中启动WPF时,组合框仍然没有填充。来了。我有一个名为People.XML的XML文档,它的格式如下

<?xml version="1.0" encoding="utf-8"?>
<People>
  <Person>
    <personName>John Doe</personName>
    <personEmail>someone@yahoo.com</personEmail>
    <personReports>List of reports they get go here.</personReports>
</Person>
在应用程序的App.xml部分,我将此作为资源:

<XmlDataProvider x:Key="People" Source="\DataSources\People.xml" XPath="People" IsInitialLoadEnabled="True" />
然后,在组合框的XAML中,我将其列为:

<ComboBox x:Name="employeeNameBox" IsReadOnly="False" HorizontalAlignment="Left" IsEditable="True" ItemsSource="{Binding Source={StaticResource People}, XPath=./Person/personName}">
我试图用XML文档中的所有personName元素填充组合框

再一次,我尝试了几种不同的方法来加载它,组合框总是空的。一般来说,我对数据绑定结构和WPF是比较陌生的,所以我能得到的任何帮助都会很好


谢谢

对我来说,最简单的方法是XmlSerializer

组合框代码:

<ComboBox x:Name="employeeNameBox" IsReadOnly="False" HorizontalAlignment="Left" IsEditable="True" DisplayMemberPath="personName">

我本来希望在WPF中进行绑定,但我想试一试,xml文件存储在哪里?尝试了你的代码,它工作了。附加到项目的文件。我在项目中有一个数据源文件夹,其中XML可能是您的文件的BuildAction属性值错误。应将其设置为“资源”。
var people = (People)new XmlSerializer(typeof(People)).Deserialize(stream);
employeeNameBox.ItemsSource = people.Persons;
<ComboBox x:Name="employeeNameBox" IsReadOnly="False" HorizontalAlignment="Left" IsEditable="True" DisplayMemberPath="personName">