0

押す

みなさん、こんにちは!

(オートコンプリート)でWPF ComboBoxを使用していて、IsTextSearchEnabled="True"そのItemsSource-PropertyをCompositeCollectionにバインドしたいと思います。残念ながら、ComboboxはCompositeCollection内のCollectionContainerによって提供されるアイテムを認識していないようです。それらは表示されますが、オートコンプリートでは選択されません。

例を試して、「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() 関数をオーバーライドするとすぐに解決されるため、項目 DataTemplate が示す内容が返されることがわかりました。

完全な動作例は次のとおりです: --------> X

  • ダートラックス
于 2010-02-26T15:16:27.493 に答える