wpf/silverlight新しい値をリストする機能を備えたAutoCompleteBox
-
01-10-2019 - |
質問
値のリストを備えたAutoCompleteBoxを使用したいだけでなく、ユーザーが存在しないものを入力した場合、リストに新しい値を追加したいと思います。
私は現在、「コメント」と呼ばれる私のビューモデルに文字列プロパティを持っています。現在、これはビュー内のテキストボックスにバインドされています - ユーザーはコメントを入力し、ビューモデルが更新されます。単純。
時間を節約するために、私の顧客は以前の値からオートコンプリートすることを望んでいるので、私がこれを行うと思った方法は次のようなものです。
ViewModel
public string Comment;
public ObservableCollection<string> CommentsList { ... }
(ViewModelが作成されたときにコメントリストに入力)
意見
<AutoCompleteComboBox ItemsSource="{Binding CommentsList}" SelectedItem="{Binding Comment, Mode=TwoWay/>
したがって、ユーザーが値を選択すると、コメントプロパティの値が保存されます。これは、ユーザーがリスト内のアイテムを選択した場合に正常に機能しますが、ユーザーが新しい値で入力した場合、コメントプロパティは更新されません(選択したアイテムがリストに含まれていなかったため、nullです)。
これはAutoCompleteBoxで可能ですか?
よろしくお願いします
解決
解決策を見つけました...
SelectedItemではなく、テキストプロパティを使用する必要がありました。
文章ユーザーが入力または選択した現在のテキストが含まれています。
selectedItemアイテムが現在選択されていない場合、nullです。ユーザーがドロップダウンをナビゲートしたり、アイテムを選択したり、アイテムをクリックしたりした場合、これはそのアイテムに更新されます。
見る:
http://www.jeff.wilcox.name/2008/10/introducing-autocompletebox/
所属していません StackOverflow