2011-01-19 7 views
1

작동하는 자동 완성 상자가 있습니다. 그러나 한 가지 이상한 점에 대해서는 도움을 받기를 바랍니다. 팝업에서 항목을 선택하고 키보드를 사용하여 아래로 화살표를 누른 다음 Enter 키나 마우스를 사용하여 항목을 선택하면 해당 항목이 선택되고 자동 완성 상자로 업데이트됩니다. 그러나 항목 아래로 화살표를 이동하는 대신 마우스로 해당 항목을 선택하면 선택한 항목이 올바르게 설정되지만 자동 완성 상자는 선택한 항목으로 업데이트되지 않습니다.wpf - autocompletebox가 mousedown에서 업데이트되지 않습니다.

즉, 아래로 화살표를 누르고 항목을 선택하면 자동 완성 상자에 선택한 항목이 반영되지만 항목을 선택하면 자동 완성 상자에 선택 사항이 반영되지 않습니다. 대신 사용자가 상자에 입력 한 내용이 표시됩니다. backing 속성은 선택한 항목을 인식하므로 어느 방식 으로든 작동하지만 텍스트 상자에만 반영되지 않습니다.

도움을 주시면 감사하겠습니다. 감사

내가

+0

직접 작성 하시겠습니까? 아니면 Codeplex의 WPF Toolkit에있는 자동 완성 상자를 참조하고 계십니까? (아니면 다른 질문 일 수도 있습니다. 모를 경우 질문에 대답 할 수 없습니다.) –

+0

사과, Codeplex의 WPF 툴킷입니다. – c95mbq

답변

2

이 문제는 여기에 설명되어 있습니다 ...이 전화를받을 것 같지 않는 OnSelectedItemChanged 것을 추가해야합니다 : 기사의 말에 precised으로 http://www.siimviikman.com/2012/05/30/wpf-autocompleteboxfiltering-similar-items/

, 사용자 항목을 탐색 할 수 없습니다 (화살표 키 + 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)); 

그래서 나는 단순히 OnAdapterSelectionComplete 및 OnAdapterSelectionCanceled 모두의 WPF 툴킷을 패치하고 UpdateTextCompletion 방법에 대한 호출을 주석.

텍스트 완성을 사용하지 않기 때문에이 수정이 제대로 작동하는 것 같습니다.

관련 문제