21


13

オートコンプリート/オートフィルターを備えたWPFコンボボックス?

WPF Comboboxがユーザーの入力に応じてオートコンプリート/オートフィルターを実行できるように、いくつかの堅実なコード(無料、オープンソース、またはチュートリアル/サンプル)を探しています。 しかし、私がこれまでに試したことには、なんらかの問題がありました…​

  • A再利用可能 WPF Autocomplete TextBoxが近づきましたが、http://bea.stollnitz.com/blog/?p = 32 [複数のフィルターを使用]にアクセスできません(詳細はhttp://www.codeproject。 com / Messages / 3498233 / Thanks-and-a-question.aspx [こちら])。

  • WPF autocomplete textbox / comboboxはUserControlを継承しているため機能しません。したがって、必要なDataTemplatesをサポートしていません(複数のプロパティを持つオブジェクトの1つのプロパティの値を表示/選択するため)。

  • http://weblogs.asp.net/okloeten/archive/2007/11/12/5088649.aspx [自動的に WPFでのComboBoxのフィルタリングは機能しませんでした。継承されたComboBoxコードのEditableTextBox部分を見つけることができないためです(常に(nullを返すように思われる `(TextBox)base.GetTemplateChild(" PART_EditableTextBox ")`を使用)。

  • Building Filtered ComboBox for WPFは、更新ループでスタックし、数文字入力しただけでスタックがオーバーフローします。

私が検討した他のこと:

  • そんなこと知ってる Windows FormsのComboboxコントロールにはAutoCompleteModeがありますで、http:/ /msdn.microsoft.com/en-us/library/ms742875%28v=VS.90%29.aspx[WPFに埋め込む]が、WPFデータバインディングでうまく機能するとは考えられません。

  • おそらくそれはあまりにも複雑で、おそらく構築することによって、単純化する必要があります ComboBoxenの1次元(単一プロパティ)ObservableCollections …​ ただし、同じDataSetの異なるビューを使用して複数のフィルター(別のコントロールの値によって設定され、ユーザーが入力しているものから1つ)を複数のフィルターに適用するという課題は、リストを破棄して再構築するために途方もない量の処理能力を必要としますユーザーが文字を入力する時間!

そう…​ 私は機知に富んでいます。 助言がありますか?

2 Answer


28


Comboboxにデータソースが接続されている場合は、make

1-IsTextSearchEnabled = true.
2-IsEditable = true.

準備できた


3


これを試してください:http://blogs.windowsclient.net/dragonz/archive/2010/02/23/autocomplete-textbox-control-for-wpf.aspx