2011-07-31 2 views
2

현재 WPF C# 프로젝트에서 작업 중입니다. AutoCompleteBox WPF 컨트롤을 사용하고 있지만 상자 밖으로 값을 가져 오는 데 문제가 있습니다.C#에서 값을 가져 오는 AutoCompleteBox 문제 wpf

자동 완성 상자가 서버 이름에 사용된다고 가정하면 'loc'을 입력하면 팝업 상자에 'localhost'가 표시되고 드롭 다운 상자에서 값을 선택합니다.

양식을 제출하고 상자의 값을 가져 오려고하면 입력 한 값, 즉 값이 'loc'값이됩니다. 다음은

내가 컨트롤

using (SQLiteDataReader reader = cmd.ExecuteReader()) 
{ 
    List<string> serverArr = new List<string>(); 
    while (reader.Read()) 
    { 
     serverArr.Add(reader["his_server"].ToString()); 
    } 
    txtServer.ItemsSource = serverArr; 
} 

내가 txtServer.Text 말하여 autocompletebox에서 값을 얻고위한 자동 완성 항목을 채우는 데 사용하고있는 코드입니다;

이 문제에 대한 도움은 크게 감사하겠습니다.

덕분에 내가 자동 완성에서 항목을 선택하면 잘 작동 txtServer.selectedItem를 사용하여 시도 @ 톰 Studee에 의해 제안

UPDATE . 그러나 값이 자동 완성 드롭 다운 안에 있지 않으면 Null 포인터 예외로 실패합니다.

+0

할 수 있습니다. 'AutoCompleteBox'는 어떻게 정의되어 있습니까? –

+0

@Meleak 제안 된 항목을 클릭하면 SelectedItem이 제대로 작동합니다. 이제는 사용자가 자동 ​​완성 제안에없는 값을 입력하면 null 포인터 예외가 발생합니다. – Boardy

+0

글쎄, 선택한 항목이나 텍스트를 찾으십니까? 사용자가 목록에없는 항목을 선택하면 null이 예상되는 결과입니다. 텍스트 값을 찾고 있다면'Text' 속성을 사용하거나 뭔가 빠졌는가? –

답변

2

.Text 대신 .SelectedItem 속성을 사용하십시오.

+1

고마워요. null 포인터 예외를 얻을 중지하려면 작동하지 않았다. 확인하려면 if 문을 만든 .text null이 아닙니다. 도움을 주셔서 감사합니다 – Boardy

-3

당신은 내가 그것은 또한 '텍스트'속성을 업데이트 목록에서 제안 항목을 선택하면,이 문제를 재현 할 수 없어요

string cbValue; 
    if (SelectedIndex == -1) cbValue = .Text; else cbValue = .SelectedItem; 
+0

autocompletebox에 대한 selectedindex 옵션이 없습니다. – Boardy

+0

.SelectedItem 부분이 올바르다. 나는 미래에 어떤 질문에 대해서도 대답하지 않겠다는 것을 기억할 것입니다. – Paparazzi

+0

selectedIndex에 대해 이야기하고있는 .SelectedItem에 대해 이야기하는 것이 아닙니다. 내 대답을 볼 수 있듯이 .SelectedItem은 나를 위해 잘 작동하지만 당신이하지 못한 것은 작동하지 않습니다. 왜 지금 너무 오래되었는지 기억할 수 없습니다. – Boardy

관련 문제