0

私は、WPF バインディングの INotifyPropertyChanged と INotifyCollectionChanged をよく知っています。これは実装されており、期待どおりに機能しています。したがって、エンティティのプロパティを変更すると、「IsDirty」フラグが設定されます。次に、保存機能をオンにします。すべてバインドを介して、美しいと言えます。

しかし、最近、テキスト ボックスに入力したときにアプリケーション コマンドを元に戻すのと同じように、フィールドが変更されるとすぐに [保存] ボタンが有効になるように要求する変更要求がありました (つまり、使用が最初のキーストロークを押したとき) 。したがって、保存ボタンは、バインディングを介してエンティティでプロパティが変更されるのではなく、フォームのすべてのフィールドがいつ変更されるかを認識している必要があります。

このヘルプのリクエストの主な理由は、変更されるフィールドが 1 つしかないフォームの 1 つ (他のすべては通常デフォルトのままです) ですが、ユーザーは [保存] ボタンを有効にするだけでなく、タブを使用してフィールドから移動する必要があるためです。すぐに保存します。

4

1 に答える 1

1

UpdateSourceTriggerを次のように変更する必要がありますPropertyChanged

LostFocusこれにより、テキストボックスのデフォルトである-ではなく、テキストが変更されるたびにバインディングが更新されます。

<TextBlock Name="txtName" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" /> 
于 2012-07-09T09:50:22.040 に答える