0

ItemsSource が長い文字列リストであるカスタム wpf ComboBox があります。

特殊: ItemsSource は、ComboBox TextBox 内のテキストによって動的にフィルター処理されます。つまり、ItemsSource は、フィルタリングされた文字列を捨てることによって ItemCount を変更します。ただし、文字列アイテム自体は決して変更しないでください。しかし、これは何が起こるかです:

テキスト入力を可能にする ComboBox を設定するには、設定する必要があります

IsEditable='True'

例: これは私の ItemsSource です:

Item1000
Item2000
Item3000

「Item200」と入力して Return キーを押すと、選択するアイテムが表示されます。

Item2000

マウスまたは上下矢印でアイテムを選択せず​​、「Item200」と入力してリターンのみを押すと、次回はこのItemsSourceがあります:

Item1000
Item200
Item3000

この動作を防ぐにはどうすればよいですか?

Winforms で "DropDownList" スタイルとして知られている wpf では、IsEditable=False を設定することで実現できると聞きました。ただし、(フィルタリングを提供する) ComboBox TextBox は使用できません。これは、私の場合はオプションではありません。?

4

2 に答える 2

1

あなたが説明している意図した動作は、ComboBox. 組み込みのコントロールではなく、実際に必要なことを行うように設計されたコントロールを使用してみてください。自由に利用できるオートコンプリートの実装がたくさんあります (Silverlight には組み込まれていますが、WPF には組み込まれていません)。例: http://wpfautocomplete.codeplex.com/

于 2013-06-18T12:21:28.850 に答える