2016-03-26 4 views
1

私は以下のようにXMLからデータを取得するWPFのComboBoxを持っています。WPFのコンボボックス項目でテキストとXMLデータをマージする

<?xml version="1.0"?> 
<Root> 
    <Book> 
    <Name>Title1</Name> 
    <Name>Title2</Name> 
    <Name>Title3</Name> 
    </Book> 
</Root> 

<ComboBox x:Name="cb_Book" ItemsSource="{Binding Source={StaticResource XmlData}, XPath=./Book/Name}"/> 

静的なデフォルトのテキストとXMLから取得したアイテムをマージしたいとします。私は、CompositeCollectionのようないくつかのアプローチを試してみましたが、hereと表示されましたが、失敗しました。これを行う最善の方法はありますか(できればXAMLのすべて)?エンドComboBoxItemsで

は次のようになります。

Title1  #from XML 
Title2  #from XML 
Title3  #from XML 
MoreTitle #Static Default text 
+0

リンクされた質問の[第2回](http://stackoverflow.com/a/11671997/2998271)の回答はどうですか? – har07

答えて

1

CompositeCollectionにXmlDataProviderは、移動するための方法です。

<StackPanel xmlns:system="clr-namespace:System;assembly=mscorlib"> 
    <StackPanel.Resources> 
     <XmlDataProvider x:Key="XmlData" XPath="./Root/Book/Name"> 
      <x:XData> 
       <Root xmlns=""> 
        <Book> 
         <Name>Title1</Name> 
         <Name>Title2</Name> 
         <Name>Title3</Name> 
        </Book> 
       </Root> 
      </x:XData> 
     </XmlDataProvider> 
     <CompositeCollection x:Key="CompositeCollection"> 
      <CollectionContainer Collection="{Binding Source={StaticResource XmlData}}"/> 
      <system:String>MoreTitle</system:String> 
      <system:String>SomeMoreTitle</system:String> 
     </CompositeCollection> 
    </StackPanel.Resources> 
    <ComboBox ItemsSource="{Binding Source={StaticResource CompositeCollection}}"/> 
</StackPanel> 
+1

それは完璧に働いた、ありがとう、Rohit。 – user5349170

関連する問題