WPF绑定到XPath可访问的元素属性值

问题描述:

我想绑定到只能使用元素属性的XPath访问的值。WPF绑定到XPath可访问的元素属性值

该元素是从某些XML填充的组合框,其属性为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”来返回我真正感兴趣的整数值。

+0

因此,对于该节点在XML文档中你需要的XPath表达式选择它? – 2009-01-12 18:21:42

+0

ComboBox当前选择的节点的“partnerID”元素。 – 2009-01-12 18:25:47

已结束搞清楚自己。解决的办法是设置按钮,组合框的的SelectedItem的DataContext的,那么CommandParameter设置为XPath的结合,就像这样:

<Button DataContext="{Binding ElementName=Partner, Path=SelectedItem}" 
     Margin="25,15" Name="Submit" Width="100" Height="30" IsDefault="True" 
     CommandParameter="{Binding XPath=PartnerID/text()}">Okay</Button>