2016-08-11 6 views
-2

MSDN link의 자동 완성 텍스트 상자를 사용하고 있습니다.CSWPFAutoCompleteTextBox의 텍스트 상자 내용을 재정의하는 방법

질문 : CSWPFAutoCompleteTextBox에는 관찰 할 수있는 string 컬렉션을 바인딩 한 "AutoSuggestionList"속성이 있습니다. 각 은 id + 설명으로 구성됩니다. 사용자가 드롭 다운에서 항목을 선택하면 어떻게하면 texbox 콘텐츠를 무시할 수 있습니까? 텍스트 상자 내용을 조작하고 싶습니다.

wpf 콤보 상자를 확장하여 검색 가능한 텍스트 상자입니다. 사용자가 텍스트 상자에 문자열을 입력하면 일치하는 문자열이 드롭 다운으로 표시되고 사용자가 항목을 선택하면 항목이 텍스트 상자에 표시됩니다. 질문은이 컨트롤의 텍스트 상자 내용을 재정의하는 방법입니다. 코드의 실제 형식없이

+0

OnSelectionChanged를 무시하고 "PART_EditableTextBox"에 대한 참조를 가져 와서 Text 속성을 설정하여 문제를 해결했습니다. – user6340505

답변

0

는 정확하게 대답하기 어렵다하지만, 예를 들어, 문자열

string[] suggestions = {"0: Yes", "1: No", "666: whatever"} 

경우 다음 당신은

sugestedString.Substring(0, sugestedString.IndexOf(':')); 

처럼 뭔가 수를 얻을 수

EDIT : 질문을 오해했습니다. 따라서 이제 올바르게 이해하면

for(int i = 0; i < suggestions.Length; i++) { 
    if(suggestions[i] == selectedString) { 
    return i; 
    } 
} 

가능한 모든 제안 사항 목록에서 번호를 찾는 경우에 할 수 있습니다.

좁혀진 제안 내에서 번호를 찾는 경우 다소 어려워집니다.

먼저 사용자가 멀리에서 입력 한 내용 (예 : '자동')을 메모해야합니다. 그런 다음 실제로 선택한 항목 (예 : '자동차')이 필요합니다. 그런 것들을 사용하여 가능한 모든 제안을 검색하고, 얼마나 많은 사용자가 사용자 입력 시작을 만족하는지 계산할 수 있습니다.

int counter=0; 
for(int i = 0; i < suggestions.Length; i++) { 
    if(suggestions[i].StartsWith(typedString)) { 
    counter++; 
    if(suggestions[i] == selectedString) { 
     counter; 
    } 
    } 
} 
+0

죄송합니다. 이것은 문자열 조작과 관련이 없습니다. 이 질문은 컨트롤의 텍스트 상자에 액세스하고 해당 내용을 재정의하는 방법입니다. – user6340505

+0

오, 죄송합니다. 질문에 대한 오해가 있습니다. – Rao

+0

수정 된 답변보기 – Rao