使用XML数据作为BInding的源,有一店需要特别注意,就是Binding的路径不是Path而是XPath.其他的都差不多.
XMAL代码
<Window x:Class="使用XML数据作为Binding的源.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel Background="LightBlue">
<ListView x:Name="list" Margin="5" Height="150">
<ListView.View>
<GridView>
<!--使用@Id,指的是XML元素的属性,而不使用说明是他的子集元素-->
<GridViewColumn Header="编号" Width="60" DisplayMemberBinding="{Binding XPath=@Id}"/>
<GridViewColumn Header="姓名" Width="60" DisplayMemberBinding="{Binding XPath=Name}"/>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
</Window>
CS代码
namespace 使用XML数据作为Binding的源
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
//从指定的路径加载XML文档
XmlDocument doc = new XmlDocument();
doc.Load(@"c:usersadministratordocumentsvisual studio 2012ProjectsWPF使用XML数据作为Binding的源WPFXML.xml");
//设置用于做绑定源的XML
XmlDataProvider xdp = new XmlDataProvider();
xdp.Document = doc;
xdp.XPath = @"/UserList/User";
this.list.DataContext = xdp;
this.list.SetBinding(ListView.ItemsSourceProperty, new Binding());
}
}
}