1

Prismを使用してSL3アプリケーションを開発しています。保存ボタンが押されたときに表示される検証の概要を含む、検証(フィールドレベル(バインドされたプロパティのセッター上)と保存前(フォームレベル)の両方)をサポートする必要があります。

しかし、私がグーグルで見つけたサンプルは、コードビハインドに多くのコードが含まれているSL3(非常にクールでなく、Prismyではない)か、WPF関連のいずれかです。

誰かが私が調べることができるいくつかの実際の検証を備えた参照アプリケーションを知っていますか?

乾杯、アリ

4

1 に答える 1

3

現在 Microsoft からのものはありませんが、明日 PRISM チームにこれを渡し、PRISM の次のリビジョン内で基本的なフォーム検証の例を取得できるかどうかを確認します。

そうは言っても、基本的に各フィールドを検証するフォームごとにバリデーターを配置し (セマンティックおよび/または構文検証)、すべて合格する必要があり、true/false 状態を返すことができます。

私が通常これを行う方法は、「CanSave」メソッドをコマンドにアタッチすることです。

SaveOrderCommand = new DelegateCommand<object>(this.Save, this.CanSave);

private bool CanSave(object arg)
{
     return this.errors.Count == 0 && this.Quantity > 0;
}

次に、this.CanSaveで、このコードベース内に基本的な検証を配置するか、コンテキストに応じて他の多数のバリデーターを呼び出します。一部はすべてのモジュールで共有されます (つまり、IsEmailValid は、インフラストラクチャに配置する 1 つのバリデーターになります)。シングルトンとしてモジュールを作成し、文字列を渡すと、結果として true/false になります)。すべて合格したら、CanSave が true を返すことを確認します。失敗した場合、CanSave は False を返します。

それらが失敗し、失敗したことをユーザーにわかりやすいリマインダーとしてトリガーしたい場合、ここで使用できるテクニックがいくつかあります。私は通常、検証時に上記のコントロールに「失敗した」というフラグを立てました..悪いもの)。

現在、私は通常、上記のコントロール(赤いボックス、アイコンなど)を強調表示するだけでなく、ユーザーに何が必要かをより詳細に説明することにより、検証が行われているフォームでさらに多くのことを行うのが好きです-したがって、カスタムアプローチは解決策です私はを選択しました。

結局のところ、特定のフォームを検証するためにいくつかの面倒な作業を行う必要がありますが、妥当な場所でバリデーターを再利用する方法を検討してください (電子メール、SSN などは簡単に再利用できます)。使用する)。

HTH?

Scott Barnes - マイクロソフトのリッチ プラットフォーム プロダクト マネージャー。

于 2009-05-19T06:37:22.837 に答える