0

固定リストからの選択のみを許可するが、編集可能なコンボのような検索機能を備えたコンボを作成したい。つまり、コンボを入力すると、入力したプレフィックスに一致する項目が検索され、プレフィックスの後のテキストが選択ボックスで強調表示されます。

検索を行うために必要なロジックを実装できると思いますが、強調表示を機能させる方法がわかりません。テキストブロックからコンボアイテムを作成し、バックカラーを使用して強調表示を実装できると思いますが、ドロップダウン領域ではなく、選択ボックスでレンダリングされていることをアイテムが何らかの形で知る必要があります。IsEditable=false を使用すると、いくつかのプレフィックス検索機能がありますが、一時的なものです。1、2 秒間何も入力しないと、プレフィックスがリセットされます。これを使用できるようにするには、ユーザーが入力した内容を確認し、必要に応じてバックスペースを使用してプレフィックスを編集する必要があるため、プレフィックスを強調表示することが重要です。

コンボには多くの長いアイテムが含まれている可能性があり、ユーザーが必要なアイテムを見つけるのに時間がかかるようにしたいと考えています。IsEditable を true に設定すると、多かれ少なかれ必要な検索動作が得られますが、ユーザーがボックスにどのアイテムにも一致しないテキストを入力できるようにしたくありません。

編集可能なコンボをカスタマイズして、リスト内のアイテムと一致するキーの押下のみを受け入れ、ある程度の成功を収めることを検討しましたが、編集可能なコンボの選択動作は望んでいません-この質問https://stackoverflow.com/を参照してください質問/10442021/how-can-i-customize-an-editable-wpf-combo-to-prevent-changeing-the-selected-value

4

1 に答える 1

0

の場合でも、ComboBox は最初に一致するエントリを表示しIsEditable="False"ます。

あなたが抱えている問題は、複数のエントリが同じで始まる固定リストである可能性があります。例えば:

AAAA
AACC
BBBB

この場合、各エントリに一意のキーを与えることができます:

<ComboBox IsEditable="False">
    <ComboBoxItem Content="AAAA" TextSearch.Text="A" />
    <ComboBoxItem Content="BBBB" TextSearch.Text="B" />
    <ComboBoxItem Content="AACC" TextSearch.Text="C" />
</ComboBox> 

次に、Cキーを入力すると、 AACCエントリが選択されます。

于 2012-05-03T09:48:29.173 に答える