要素のプロパティから XPath でのみ到達可能な値にバインドしたいと考えています。
この要素は XML から入力された ComboBox であり、そのプロパティは SelectedItem です。SelectedItem は XML 要素を指しており、XPath で到達できるその中の子要素の値にバインドしたいと考えています。
これまでのところ、XAML は次のようになっています。
<StackPanel Orientation="Vertical" Margin="10,10">
<StackPanel Orientation="Horizontal">
<Label>Partner</Label>
<ComboBox Name="Partner" Margin="10,0"
ItemsSource="{Binding XPath=/Root/Tables/Partners/row}"
ItemTemplate="{StaticResource Partner}"/>
</StackPanel>
<Button Margin="25,15" Name="Submit" Width="100" Height="30" IsDefault="True"
CommandParameter="{Binding ElementName=Partner, Path=SelectedItem}">
Okay
</Button>
</StackPanel>
ソース XML は次のようになります。
<Root>
<Tables>
<Partners>
<row>
<PartnerID>1</PartnerID>
<Name>FooBar.Com</Name>
</row>
<row>
.
.
.
</row>
</Partners>
</Tables>
</Root>
私の問題は、ボタンの CommandParameter が、あまりにも多くの情報を含む XmlElement にバインドされていることです。CommandParameter に子要素を参照させたいのですが、「XPath=PartnerID」で追加のドリルダウンを指定して、本当に関心のある整数値を返すことができるかのように。