Я пытаюсь сделать какую-то привязку к данным WPF, но в данный момент я немного зациклен. У меня есть два списка и файл XML. Первый список успешно связывается с источником XML. Тем не менее, когда я пытаюсь привязать дочерний элемент выбранного элемента из первого списка в качестве источника для второго списка, ничего не появляется. Целью является что-то вроде индекса или поиска (выбор одного индекса приводит к поиску связанных элементов). Я что-то здесь упускаю для привязки данных? XAML и XML ниже.
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 XPath=@Name}" />
<TextBlock Text=" - "/>
<TextBlock Text="{Binding XPath=@Date}" />
</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>