Как связать с другим свойством на ComboBox SelectedItem? - PullRequest
0 голосов
/ 26 июля 2010

У меня есть поле со списком в WPF, как это:

<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"/>

Test - это свойство объекта типа в ViewModel, которое задается как текстовый текст окна.

Все работает нормально, и мое свойство Test получает объект XmlNode, что имеет смысл.

Однако я хотел бы получить другой атрибут из этого xml, например XPath=item/@value

Как мне это сделать?

1 Ответ

1 голос
/ 26 июля 2010

Использование DisplayMemberPath и SelectedValuePath :

<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.

...