如何将xml文件数据绑定到wpf中没有Linq的codebehind中的组合框

本文关键字:Linq codebehind 组合 wpf xml 文件 数据绑定 | 更新日期: 2023-09-27 18:13:18

我试图将XML文件绑定到应用程序中的组合框中。在网上提供的示例的帮助下,我已经成功地实现了xaml方法。但我需要在代码后面完成,没有Linq。

xml文档:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="">
    <appSettings>
      <LATLONG Latitude="17.396296" Longitude="78.448558">
    </LATLONG>
       <SDH> 
           <Signal Name = "None"/>
           <Signal Name = "Time"/>
           <Signal Name = "Mode"/>  
        </SDH>
      </appSettings>
</Configuration>

这是xml文件,我需要"None", "Time", "Mode"组合为cb1 (Combobox)。

 <Grid.Resources>
 <XmlDataProvider x:Key="AppConfig" 
  Source="pack://siteoforigin:,,,/AppConfiguration.xml" 
   XPath="Configuration"/>
 /Grid.Resources>

 ComboBox x:Name="cb1" 
                 ItemsSource="{Binding Source={StaticResource>ResourceKey=AppConfig},XPath=./appSettings/SDHData/Signal}"  
                  DisplayMemberPath="@Name" 
                  SelectedValuePath="@Name"
                  Grid.Row="0" 
                  Grid.Column="1" 
                  Margin="10" 
                  IsEditable="True" 
                  IsReadOnly="True"
                  SelectionChanged="cb1_SelectionChanged" />

我需要这个动作在没有LINQ的代码后面完成,因为我不使用数据库进行通信。

如何将xml文件数据绑定到wpf中没有Linq的codebehind中的组合框

给你

    using (Stream res = Application.GetResourceStream(new Uri("/AppConfiguration.xml", UriKind.Relative)).Stream)
    {
        XElement xe = XElement.Load(res);
        cb1.ItemsSource = (IEnumerable)xe.XPathEvaluate("./appSettings/SDH/Signal/@Name");
        cb1.DisplayMemberPath = "Value";
    }
上面的

示例基于您的XML。as xml有SDH,而as代码有SDHData元素。您可以根据需要选择