CompositeCollection打破了ComboBox AutoComplete-Feature?

时间:2010-02-24 18:57:08

标签: wpf combobox autocomplete compositecollection

各位大家好!

我正在使用带有IsTextSearchEnabled="True"(自动填充)的WPF ComboBox,并希望将其ItemsSource-Property绑定到CompositeCollection。不幸的是,Combobox似乎没有识别CompositeCollection中CollectionContainer提供的项目。它们会显示,但不会被AutoComplete选中。

请尝试该示例,输入“def”。如果没有选择“def”,你就会重现我面临的问题。有没有任何解决方案,我已经监督过的东西或者具有合并收集功能的实用方法?

<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <XmlDataProvider x:Key="XData1" XPath="/Info">
        <x:XData>
            <Info xmlns="">
                <Item>def</Item>
                <Item>efg</Item>
            </Info>
        </x:XData>
    </XmlDataProvider>

    <CollectionViewSource x:Key='Data1' Source="{Binding Source={StaticResource XData1}, XPath=Item}" />

</Window.Resources>
<Grid>
    <ComboBox IsEditable="True" IsTextSearchEnabled="True" Margin="0,0,0,283">
        <ComboBox.ItemsSource>
            <CompositeCollection>
                <ComboBoxItem>abc</ComboBoxItem>
                <ComboBoxItem>bcd</ComboBoxItem>
                <ComboBoxItem>cde</ComboBoxItem>
                <CollectionContainer Collection="{Binding Source={StaticResource Data1}}" />
            </CompositeCollection>

        </ComboBox.ItemsSource>
    </ComboBox>
</Grid>

谢谢! - dartrax

1 个答案:

答案 0 :(得分:1)

我发现只要覆盖ToString() - Items-object的函数,就会解决这个问题,以便它返回DataTemplate显示的内容。

这里有一个完整的工作示例: --------> X

  • dartrax