如何将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的代码后面完成,因为我不使用数据库进行通信。
给你
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
元素。您可以根据需要选择