0
我试图做一些WPF数据绑定,但我现在有点挂了。我有两个列表框和一个XML文件。第一个列表框成功绑定到XML源。但是,当我尝试绑定到第一个列表框中选定项目的子项作为第二个列表框的源时,不显示任何内容。目标就像索引或查找(选择一个索引导致查找相关项目)。我在这里错过了数据绑定的东西吗?下面的XAML和XML。WPF XML DataBinding
XAML:
<Window x:Class="MyTool.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="600" Width="800">
<Window.Resources>
<XmlDataProvider x:Key="AllDeployments" XPath="Deployments" Source="Deployments.xml" />
<DataTemplate x:Key="dtDeployments">
<StackPanel FlowDirection="LeftToRight" Orientation="Horizontal">
<TextBlock Text="{Binding [email protected]}" />
<TextBlock Text=" - "/>
<TextBlock Text="{Binding [email protected]}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="dtFiles">
<TextBlock Text="{Binding XPath=File}" />
</DataTemplate>
</Window.Resources>
<Grid Name="gMain">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="2"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Menu Grid.Column="0" Grid.ColumnSpan="3"></Menu>
<ListBox Grid.Column="0" Name="lbDeployment"
ItemsSource="{Binding Source={StaticResource AllDeployments}, XPath=Deployment}"
ItemTemplate="{StaticResource dtDeployments}"></ListBox>
<GridSplitter Grid.Column="1"></GridSplitter>
<StackPanel Grid.Column="2">
<ListBox Name="lbFiles"
ItemsSource="{Binding Mode=TwoWay, ElementName=lbDeployments, Path=SelectedItem.InnerText, UpdateSourceTrigger=PropertyChanged}"
ItemTemplate="{StaticResource dtFiles}"
Height="400"></ListBox>
</StackPanel>
</Grid>
</Window>
XML:
<?xml version="1.0" encoding="utf-8"?>
<Deployments MostRecentDate="12/31/2009 8:41:13 PM">
<Filters>
<Filter>.cs</Filter>
<Filter>.csproj</Filter>
</Filters>
<Deployment Name="First Deployment" ID="1" Date="6/29/2009 8:41:13 PM">
<File>file1.cs</File>
<File>file2.cs</File>
</Deployment>
<Deployment Name="First Deployment" ID="1" Date="6/29/2009 8:41:13 PM">
<File>file1.cs</File>
<File>file2.cs</File>
</Deployment>
<Deployment Name="First Deployment" ID="1" Date="6/29/2009 8:41:13 PM">
<File>file1.cs</File>
<File>file2.cs</File>
</Deployment>
<Deployment Name="First Deployment" ID="1" Date="6/29/2009 8:41:13 PM">
<File>file1.cs</File>
<File>file2.cs</File>
</Deployment>
<Deployment Name="First Deployment" ID="1" Date="6/29/2009 8:41:13 PM">
<File>file1.cs</File>
<File>file2.cs</File>
</Deployment>
</Deployments>
感谢您指出的拼写错误。至于模板无法正常工作,我很怀疑它与它提供的XPath有关。 – CodeMonkey1313 2009-06-30 12:23:08