WPF では、検証を行う 3 つの方法があります。
- 検証規則
IDataErrorInfo
INotifyDataErrorInfo
これらを組み合わせて同時に使用することは可能ですか?私のニーズでは、INotifyDataErrorInfo の柔軟性を使用して新しいルールを検証したいと考えていますが、検証したい同じオブジェクトの既存の ValidationRules に干渉したくありません。
WPF では、検証を行う 3 つの方法があります。
IDataErrorInfo
INotifyDataErrorInfo
これらを組み合わせて同時に使用することは可能ですか?私のニーズでは、INotifyDataErrorInfo の柔軟性を使用して新しいルールを検証したいと考えていますが、検証したい同じオブジェクトの既存の ValidationRules に干渉したくありません。
1. さまざまなエラーの原因を混在させる
はい、引用した3種類の検証を混在させることができます:
ValidationRules
GUI(表面)の検証には問題ありませんIDataErrorInfo
ビューモデル/ビジネスオブジェクトに実装されています。よりビジネス指向の検証には問題ありませんINotifyDataErrorInfo
ビューモデル/ビジネスオブジェクトにも実装されています。特定のフィールドで複数のエラーが発生する可能性が追加され、非同期検証も追加されます (つまり、サーバーまたはスレッドが検証に応答するのに時間がかかる場合があります)。 エラーの最後の原因は、実際には実装に時間がかかります
2. エラーを考慮する
最も難しいのは、データが無効な場合にウィンドウが閉じられないようにする場合に、さまざまなエラーの原因を考慮することです。
無効なデータがビジネス オブジェクト/ViewModel に到達しないため、ValidationRules エラーは GUI バインディングで検索する必要があります。
IDataErrorInfo
ViewModelレイヤーでINotifiDataErrorInfo
見ることができます。
よろしく