私は最近、アプリ内のさまざまなモジュールを分離して単体テストに適したものにすることを目的として、プロジェクト内でMVVMデザインパターンを使用する習慣を身に付けようとしています。
入力検証に移りました。ViewModelにIDataErrorInfoを実装しています...これはTextBoxでかなりうまく機能しているようです。
私は現在、カスタムオブジェクトのObservableCollectionにバインドされているListBoxコントロールにIDataErrorInfoを実装する方法を模索しています。問題は、各行(ListBoxItem)がモデルを直接更新するため、ViewModelのIDataErrorInfo実装がバイパスされることです。だから私はそれを見る方法で私は2つのことのうちの1つをすることができます-
1)Observableコレクションにデータを入力してIDataErrorInfoを実装するために使用するセカンダリViewModel(ListBoxItemsを表すため)を作成します。
2)モデルにIDataErrorInfoを実装します。ただし、ViewModelは主にモデルからの参照を中継するために使用されるため、一貫性を保つために、すべてのIDataErrorInfo実装をModelクラスに移動することを検討します...
あなたならどうしますか?
また...あらゆるタイプのコントロールに簡単に適用できる再利用可能な検証メソッドを作成するためのアドバイスはありますか?
乾杯