WPF

2016-03-26 18 views
1

'daki combobox öğelerinde combobox öğelerinde metin ve XML verilerinin birleştirilmesi WPF'de aşağıda gösterildiği gibi XML'den veri alan bir ComboBox'ım var.WPF

<?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'den alınan öğelerle birlikte bir statik varsayılan metni birleştirmek istiyorum. Ben here gösterilen CompositeCollection gibi birkaç yaklaşım denedim, ancak başarısız oldu. Bunu yapmanın en iyi yolu var mı (tercihen tümü XAML'de)? uç ComboBoxItems anda

bu gibi görünmelidir:

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

Bağlantılı soruda [2.] (http://stackoverflow.com/a/11671997/2998271) yanıtı nasıl kullanılır? – har07

cevap

1

CompositeCollection ve XMLDataProvider gitmek için bir yoldur.

<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

Mükemmel çalıştı, teşekkürler, Rohit. – user5349170