【发布时间】:2010-09-30 23:35:06
【问题描述】:
我想从元素的属性中绑定一个只能通过 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>
我的问题是 Button 的 CommandParameter 绑定到其中包含太多信息的 XmlElement。我想让 CommandParameter 引用一个子元素,就像我可以使用“XPath=PartnerID”指定一个额外的向下钻取来返回我真正感兴趣的整数值。
【问题讨论】:
-
那么,对于 XML 文档中的哪个节点,您需要选择它的 XPath 表达式?
-
ComboBox当前选择的节点的“partnerID”元素。
标签: wpf xaml .net-3.5 xpath binding