我试图在WPF DataGrid中显示一些来自XML文件的数据(以下示例中的3列),这些数据基于ListBox中的选择,ListBox显示同一XML文件的一个字段。
使用以下代码,DataGrid仍然是空的......: - (
<Window x:Class="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">
<Window.Resources>
<XmlDataProvider x:Key="XmlData" Source="E:\CMT\Automation\Testarea\Authors.xml"/>
</Window.Resources>
<Grid>
<ListBox Name="ListBox1" ItemsSource="{Binding Source={StaticResource XmlData}, XPath=Authors_Table/authors}" DisplayMemberPath="au_id" HorizontalAlignment="Left" Height="202" Margin="10,10,0,0" VerticalAlignment="Top" Width="129"/>
<DataGrid DataContext="{Binding ElementName=ListBox1, XPath=SelectedItem}" HorizontalAlignment="Left" Margin="155,10,0,0" VerticalAlignment="Top" Height="202" Width="353">
<DataGrid.Columns>
<DataGridTextColumn x:Name="FNameCol" Binding="{Binding XPath=au_fname}" Header="First Name"/>
<DataGridTextColumn x:Name="LNameCol" Binding="{Binding XPath=au_lname}" Header="Last Name"/>
<DataGridTextColumn x:Name="PhoneCol" Binding="{Binding XPath=phone}" Header="Phone"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
XML文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<Authors_Table>
<authors>
<au_id>172-32-1176</au_id>
<au_lname>White</au_lname>
<au_fname>Johnson</au_fname>
<phone>408 496-7223</phone>
<address>10932 Bigge Rd.</address>
<city>Menlo Park</city>
<state>CA</state>
<zip>94025</zip>
<contract>true</contract>
</authors>