2011-01-19 9 views
1

私は機能するオートコンプリートボックスを持っていますが、私は助けを望んでいました。ポップアップで項目を選択し、キーボードを使用して矢印を下にしてからEnterキーまたはマウスを使用して項目を選択すると、その項目が選択され、オートコンプリートボックスに更新されます。しかし、アイテムに向かって矢を下ろすのではなく、マウスでそれを選択すると、選択されたアイテムは正しく設定されますが、オートコンプリートボックスは選択されたアイテムで更新されません。wpf-autocompleteboxはmousedownで更新されません

つまり、項目を選択して項目を選択すると、オートコンプリートボックスには選択項目が反映されますが、項目を選択すると、オートコンプリートボックスには選択項目が反映されません。バッキングプロパティは選択された項目を認識しているので、どちらの方法でも機能しますが、テキストボックスには反映されません。

何か助けていただければ幸いです。私は呼び出されるようには見えないことOnSelectedItemChangedされていることを追加する必要があります おかげ

...

+0

自分でオートコンプリートボックスを実装しましたか、CodeplexのWPFツールキットにあるオートコンプリートボックスを参照していましたか? (もしかしたらあなたの質問に答えることはできません。 –

+0

お詫び申し上げます、これはCodeplexのWPFツールキットです – c95mbq

答えて

2

は、この問題は、ここで説明されていますhttp://www.siimviikman.com/2012/05/30/wpf-autocompleteboxfiltering-similar-items/

記事の最後にprecisedたように、ユーザにアイテムを移動することはできません(矢印キー+ TABキーを押す)。だから私は彼らのソリューションを使用できませんでした。 WPFツールキットのソースコード(UpdateTextCompletion法)において

、一方が読むことができる:

// Perform an exact string lookup for the text. This is a 
// design change from the original Toolkit release when the 
// IsTextCompletionEnabled property behaved just like the 
// WPF ComboBox's IsTextSearchEnabled property. 
// 
// This change provides the behavior that most people expect 
// to find: a lookup for the value is always performed. 
newSelectedItem = TryGetMatch(text, _view, AutoCompleteSearch.GetFilter(AutoCompleteFilterMode.EqualsCaseSensitive)); 

をだから、単にWPF Toolkitをパッチし、両OnAdapterSelectionCompleteとOnAdapterSelectionCanceledに、UpdateTextCompletionメソッドへの呼び出しをコメントアウト。

私はテキスト補完を使用しないので、この修正はうまくいくようです。

関連する問題