CompositeCollection ломает ComboBox AutoComplete-Feature? - PullRequest
0 голосов
/ 24 февраля 2010

нажать

Привет всем!

Я использую WPF ComboBox с IsTextSearchEnabled="True" (автозаполнение) и хочу связать его ItemsSource-Property с CompositeCollection. К сожалению, Combobox, похоже, не распознает элементы, предоставленные CollectionContainer в CompositeCollection. Они показываются, но не выбираются автозаполнением.

Пожалуйста, попробуйте пример, введите "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>

Спасибо! - дартракс

1 Ответ

1 голос
/ 26 февраля 2010

Я обнаружил, что это решается, как только вы переопределяете функцию ToString () вашего Items-объекта, чтобы она возвращала то, что показывает элемент DataTemplate.

Полный рабочий примерздесь: --------> X

  • дартракс
...