私は現在、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から値を取得しています。
アップデート
@Tom Studeeが提案したように、オートコンプリートのアイテムが選択されている場合に正常に機能するtxtServer.selectedItemを使用してみました。ただし、ドロップダウンオートコンプリート内にない値が入力された場合、NullPointerExceptionで失敗します。