2011-04-08 31 views
1

我有一個WPF組合框定義爲這樣:如何根據XML中的屬性設置綁定到XML的ComboBox的SelectedIndex屬性?

<ComboBox Grid.Column="1" x:Name="cUrls" SelectedIndex="1" ItemsSource=" {Binding XPath=//data/endpoints/endpoint}" Margin="5" >      
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding [email protected]}"></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> 

的結合工作正常,並在組合框中顯示的項目「測試」和「生產」,我可以將正確的URL從SelectedValue屬性中取出。

我希望能夠將組合框上的SelectedIndex屬性設置爲具有default=true屬性的<endpoint>節點的索引。

我可以在組合框上做SelectedIndex="{Binding XPath=}"嗎?如果是,那麼這個表達會是什麼樣子?如果不是,我該怎麼辦?

謝謝!

回答

1

嘗試

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

都能跟得上。在XPath結尾添加/ position() – Matthew 2011-04-08 19:42:01

+0

這沒有什麼區別。 – Matthew 2011-04-08 19:50:44

+0

@Mthethew試試這個編輯過的代碼片段。我只是測試了這樣的東西。 – 2011-04-08 20:18:10