私の現在のプロジェクトでは、WPF フォームでデータ検証を処理する必要があります。私のフォームは ResourceDictionnary の DataTemplate にあります。(2 つのDelegateCommandを介して) データをシリアル化および逆シリアル化する 2 つのボタンのおかげで、フォームからデータを保存およびロードできます。
フォームの 1 つのフィールドが空または無効な場合、保存ボタンが無効になります。UpdateSourceTrigger プロパティにより、変更されるたびにフィールドがチェックされます。そのため、保存コマンドを更新するためにフィールドが無効かどうかを C# コードで知る必要があります。
現在、XAML Binding で ExceptionValidationRule を使用していますが、これが適切な方法であるかどうか疑問に思っています。保存コマンドを更新する (保存ボタンを有効または無効にする) ために、フィールドが無効かどうかを C# コードで知る必要があるため、ValidationRule を実装できません。
<TextBox>
<Binding Path="Contact.FirstName" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<ExceptionValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox>
このブログでは、次のことを読むことができます。
これらのプロパティはコードによっても設定され、一時的にエラー値を残しても問題ない場合があるため、Setter で例外を発生させることはあまり良い方法ではありません。
この投稿は既に読みましたが、使用できません。TextBox は DataTemplate にあり、C# コードでは使用できません。
したがって、データ検証を変更して、ExceptionValidationRule を使用しないようにする必要があるのではないかと考えています。