Как я могу установить свойство SelectedIndex ComboBox, которое связано с XML на основе атрибута в этом XML? - PullRequest
1 голос
/ 08 апреля 2011

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

<ComboBox Grid.Column="1" x:Name="cUrls" SelectedIndex="1"  ItemsSource=" {Binding XPath=//data/endpoints/endpoint}" Margin="5" >                    
    <ComboBox.ItemTemplate>
        <DataTemplate>
           <TextBlock Text="{Binding XPath=@name}"></TextBlock>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

Окно привязано к XmlDocument следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
    <data>
      <endpoints>
         <endpoint name="test">test url</endpoint>
         <endpoint default="true" name="production">production url</endpoint>
       </endpoints>
     <requests>
        <request >
               ...
        </request>
        <request >
                ...
        </request>
      </requests>
    </data>

Привязка работает нормально, и в поле со списком отображаются элементы «test» и «production», и я могу извлечь правильный URL из свойства SelectedValue.

Я бы хотел установить свойство SelectedIndex в ComboBox для индекса узла <endpoint>, который имеет атрибут default=true.

Могу ли я сделать SelectedIndex="{Binding XPath=}" на ComboBox? Если да, как бы выглядело это выражение? Если нет, что мне делать?

спасибо!

1 Ответ

1 голос
/ 08 апреля 2011

Попробуйте

      <ComboBox x:Name="cUrls" 
                SelectedItem="{Binding XPath=/data/endpoints/endpoint[@default\=\'true\']}"
...