2010-07-26 78 views
0

我有这样的WPF组合框:如何绑定到ComboBox SelectedItem上的不同属性?

<ComboBox Text="Select Language..." IsEditable="True" IsReadOnly="True" 
      ItemsSource="{Binding XPath=item/@name, Source={StaticResource Items}}" 
      SelectedItem="{Binding Path=Test, Mode=OneWayToSource}"/> 

其中项目是:

<XmlDataProvider x:Key="Items" Source="/itemlist.xml" XPath="/itemlist"/> 

测试是在视图模型对象的类型设置为DataContext的一个窗口的属性。

一切工作正常,我的测试属性收到XmlNode对象,这是有道理的。

不过,我想从XML获得不同的属性,例如XPath=item/@value

我该怎么办呢?

回答

1

使用DisplayMemberPathSelectedValuePath

<ComboBox Text="Select Language..." IsEditable="True" IsReadOnly="True" 
    ItemsSource="{Binding XPath=item, Source={StaticResource Items}}" 
    DisplayMemberPath="@name" 
    SelectedValuePath="@id" 
    SelectedValue="{Binding Path=Test, Mode=OneWayToSource}"/> 

所选项目将是item元件,它会显示name属性,并且将所述id属性绑定到Test

+0

谢谢!这非常可爱。我不知道那些支持XPath的属性。 – Kugel 2010-07-26 18:30:39

相关问题