合并 WPF 组合框项中的文本和 XML 数据

Merging text and XML data in combobox items in WPF

我在 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 检索到的项目合并。我尝试了几种方法,例如显示 here 的 CompositeCollection,但没有成功。有没有最好的方法来做到这一点(最好全部在 XAML 中)?

最后 ComboBoxItems 应如下所示:

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

CompositeCollectionXMLDataProvider 是一个可行的方法。

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