【问题标题】:CompositeCollection breaks ComboBox AutoComplete-Feature?CompositeCollection 会破坏 ComboBox AutoComplete-Feature?
【发布时间】:2010-02-24 18:57:08
【问题描述】:

大家好!

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

谢谢! - 达特拉克斯

【问题讨论】:

  • 我刚刚尝试了 WPF Toolkit 2010 年 2 月发行版附带的 AutoCompleteBox,它也有同样的问题。

标签: wpf combobox autocomplete compositecollection


【解决方案1】:

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

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

  • 达特拉克斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多