0

私は最近、アプリ内のさまざまなモジュールを分離して単体テストに適したものにすることを目的として、プロジェクト内でMVVMデザインパターンを使用する習慣を身に付けようとしています。

入力検証に移りました。ViewModelにIDataErrorInfoを実装しています...これはTextBoxでかなりうまく機能しているようです。

私は現在、カスタムオブジェクトのObservableCollectionにバインドされているListBoxコントロールにIDataErrorInfoを実装する方法を模索しています。問題は、各行(ListBoxItem)がモデルを直接更新するため、ViewModelのIDataErrorInfo実装がバイパスされることです。だから私はそれを見る方法で私は2つのことのうちの1つをすることができます-

1)Observableコレクションにデータを入力してIDataErrorInfoを実装するために使用するセカンダリViewModel(ListBoxItemsを表すため)を作成します。

2)モデルにIDataErrorInfoを実装します。ただし、ViewModelは主にモデルからの参照を中継するために使用されるため、一貫性を保つために、すべてのIDataErrorInfo実装をModelクラスに移動することを検討します...

あなたならどうしますか?

また...あらゆるタイプのコントロールに簡単に適用できる再利用可能な検証メソッドを作成するためのアドバイスはありますか?

乾杯

4

1 に答える 1

0

あなたならどうしますか?

もちろん、最初のオプションは、リスト アイテムのセカンダリ ビュー モデルを作成することです。IDataErrorInfoこれは UI 固有の機能であるため、モデルに実装しないでください。

どのタイプのコントロールにも簡単に適用できる再利用可能な検証メソッド

あなたはMVVMを誤解しています。コントロールIDataErrorInfoの検証ではなく、ビュー モデルの検証を目的としています。

于 2013-01-30T11:10:37.377 に答える