質問

値のリストを備えた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/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top