0

大家好!

我正在使用带有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>

谢谢!- 达特拉克斯

4

1 回答 1

1

我发现只要覆盖 Items 对象的 ToString()-Function 就可以解决这个问题,这样它就会返回 DataTemplate 显示的项目。

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

  • 达特拉克斯
于 2010-02-26T15:16:27.493 回答