MVVMアーキテクチャを使用したWPFアプリケーションがあります。ビューモデルは、ネストされたビューモデルからエラーを追加する実装でIDataErrorInfoを実装します。 SaveCommandは一番上のviewmodelのErrorをチェックし、何かがすべてのエラーのリストに遭遇していない場合、エラーMesssageBoxを表示します。モデルとコントロールのWPF MVVM検証
ビジネスロジックでチェックされたエラー(必須フィールドなど)では問題ありませんが、たとえば次のような変換エラーは処理されません。ユーザーは数値プロパティにバインドされたTextBoxに名前を入力します。
ViewModelのエラーとUIに表示されているものの、実際にviewmodelに到達していないエラーを組み合わせた良い方法やライブラリがありますか? viewmodelのすべての文字列プロパティに戻り、変換が正しく行われるようになります。私は論理的なコントロールツリーを通って変換エラーによって引き起こされたすべてのエラーのリストを取得し、このリストをINotifyDataInfo errorMessageと組み合わせることを考えましたが、おそらくもっと良い方法がありますか?
このような問題は、適切なコントロールを使用することで解決できます。ユーザーが1から100の間の値を入力することになっている場合は、スライダがそのために設計されているときにテキストボックスを使用する理由、ビューを検証すると、ビューによって渡されたデータのみが検証されます。 MVVM – MikeT
*ユーザーは、UIにエラーを自動的に表示する数字プロパティ* watにバインドされたTextBoxに名前を入力します – Will
コントロールにエラーが表示されますが、ビューモデルには何も分かりませんエラーはバインディングの値変換から来ているので、それについてです。そのため、Saveが呼び出されたときにIDataErrorInfo自体が有効になるビューモデルは、一部のコントロールでバインディングエラーが表示されている間は変更されていない値で保存を実行します。 –