次の2行のコードは恐らく等価でありますので、フォーカスを失うまで、Bindingは書き戻しされません。
<TextBox Text="{Binding 品番}" />
<TextBox Text="{Binding 品番,UpdateSourceTrigger=LostFocus}" />
特にWindowを閉じた場合、書き戻しされない事が有り、結構困ったりします。
次のように書けば解決なのですが、全てに UpdateSourceTrigger=PropertyChanged を追加していくのも気が遠くなる話です。
<TextBox Text="{Binding 品番,UpdateSourceTrigger=PropertyChanged}" />
そこで、BindingGroupを使って、楽をしています。こちらに詳細を残しています。
*但し、この方法には副作用が有ります。
DataRowViewへアクセスする前に、BindingGroup.CommitEdit();
を呼ばないと、DataRowViewに反映されません。
メソッドの入り口にCommitEditが多くなるきらいが有りますが… そこはバランスを考えます。
0 件のコメント:
コメントを投稿