問題タブ [idataerrorinfo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
19523 参照

wpf - MV-VM で IDataErrorInfo を使用する

ドメイン オブジェクトが IDataErrorInfo を実装していて、MV-VM を使用している場合、ViewModel を介してビューにエラーを伝達するにはどうすればよいですか? モデルに直接バインドする場合は、バインディングで "ValidateOnExceptons" および "ValidateOnErrors" プロパティを true に設定します。しかし、私の ViewModel は IDataErrorInfo を実装していません。私だけのモデル。私は何をしますか?

明確化 ドメイン オブジェクトに IDataErrorInfo を実装する既存のコードベースを扱っています。ビューモデルに IDataErrorInfo を実装することはできません。

0 投票する
1 に答える
1064 参照

c# - IDataErrorInfo.this[string columnName] get を呼び出す DataGridView を停止するにはどうすればよいですか?

IDataErrorInfo を実装するデータ オブジェクトがありますが、検証ロジックは少し遅いです。それほど遅くはありませんが、何度も呼び出したくないほど遅いです。私のアプリケーションでは、これらのオブジェクトのリストが DataGridView コントロールに表示されます。グリッドは読み取り専用で、有効なデータ オブジェクトのみが含まれますが、DataGridView はグリッド内のすべてのセルに対して IDataErrorInfo.this[string columnName] を呼び出すことを主張しているため、再描画が非常に遅くなります。

ShowCellErrors と ShowRowErrors を false に設定しようとしましたが、まだ IDataErrorInfo.this[string columnName] を呼び出しています。有効であることがわかっているオブジェクトの検証を停止する方法はありますか?

0 投票する
2 に答える
1658 参照

wpf - IDataErrorInfo を使用して Validation.HasError スタイルを設定する

スタイルを使用するWPFIDataErrorInfoで、データを検証しながらエンドユーザーに3つの異なるステータスを提供できるフォームを作成したいシナリオをより明確にする

1) その横にテキストボックスがあります。エンドユーザーに、テキストボックスが期待する入力の種類を提供するアイコンがあります - 情報アイコン付きの初期ステータス

2) ユーザーがデータを入力するとすぐに、データが検証され、有効かどうかが決定されます。ほとんどの場合、無効なデータを示す十字 (X) アイコンが表示されます。

3) 検証中のため、検証さUpdateSourceTrigger="PropertyChanged"れるとすぐに十字アイコンが緑色のチェック マークに変わります。

すなわち

スタイルを使用してこれを達成するにはどうすればよいですかIDataErrorInfo、それを試してみましたが、フォームが読み込まれるとすぐにすべてのデータが無効になり、最初に十字アイコンが表示されます。Initial info3 つの状態 ( 、Invalid dataValid data)で異なるツールチップと異なるアイコンを表示したい

0 投票する
1 に答える
148 参照

asp.net-mvc - この検証をリファクタリングするにはどうすればよいですか?

実装する必要のあるすべてのメソッドを持つIDataErrorInfoを実装する検証クラスがあります。

1つは

このswitchステートメントでは、フォームの検証がいくつかあります。

今、私は自分のフォームの多くがまったく同じ検証のものを必要としていることに気づきました。

したがって、検証をさらに追加する必要がある場合は、「IDataErrorInfo」を実装する新しいクラスを作成して、追加の評価を追加します。

次に、ビューで私はこのようなことをします

成長し続ける可能性のある2つの別々のtrycatchステートメントが必要なという事実が気に入らないだけです。「コア」と「もっと」を取り、これらのどちらにも当てはまらない検証を追加する必要がある場合は、別のトライキャッチを検討しています。

「CoreValidation」クラスに移動して、switchステートメントとPropertiesを抽出し、新しいクラスに配置しようとしました。

私の計画は、そのクラスとメソッドをswtichステートメントで呼び出すことでした。したがって、「More」検証クラスでは、これを使用します

そうすると、try catchは1つだけになり、すべてが同じメソッド(CoreValidation)を呼び出すため、コードを複製することはありません。

しかし、updateModelはこれを理解できないようです。UpdateModelがセットアップに必要なものをセットアップしようとすると、プロパティメソッドが見つからないため、次のようなすべてのプロパティが見つかります。

「UserName」はすべてnullに設定されています。

では、どうすればやりたいことができますか?

ありがとう

0 投票する
2 に答える
962 参照

asp.net-mvc - IDataErrorInfoをユニットテストする方法は?

Asp.net MVC Frameworkを読んでおり、検証の形式としてIDataErrorInfoについて読んでいます。

だから私は彼が持っているものを投稿するつもりです。

製品クラス

ProductRepository。

コントローラ

しかし、本のどこにこれを実際にユニットテストする方法がわかりません。彼がサービスレイヤーのものをユニットテストする方法を示しているように、IDataErrorInfoのユニットテストについては何もありません。

では、これをどのように単体テストしますか?エラーメッセージをチェックして、同じかどうかを確認するのが好きです。nullフィールドを渡す場合と同様に、エラーメッセージがこのnullフィールドに適切かどうかを確認したいと思います。

検証が必要なものの後にステートメントロジックが期待どおりに機能しているかどうかを確認したいのですが、特に通常はヒットしたくないので、この部分クラスを呼び出す方法すらわかりません。単体テストを行うときのデータベース。

0 投票する
1 に答える
1399 参照

c# - C# IDataErrorInfo と子プロパティ

winform にバインドされたオブジェクトがあり、このオブジェクトは IDataErrorInfo を実装しています。エラープロバイダーがあります。問題は、aa プロパティのプロパティが変更されたときです。

年齢を変更しても問題ありません(つまり、ルールがチェックされ、正しく表示/削除されます)。しかし、役職を変更すると、エラーが表示/削除されません(実際、プロパティのタイトルは対象者に属していません)。どうすればチェックを実行できますか?

0 投票する
2 に答える
4593 参照

wpf - ボタンのクリック時に ViewModel を検証する

IDataErrorInfo とマスター詳細ビューを実装する ViewModel があります。ユーザーが以前ではなく詳細ビューで保存ボタンを押したときに、現在の ViewModel アイテムの検証をトリガーするにはどうすればよいですか?

0 投票する
2 に答える
8901 参照

c# - winforms の IDataErrorInfo

winformsアプリケーションでIDataError情報を適切に使用できますか? 以前は、通常の方法 (1) でバインディングを行っており、特定のコントロールの OnValidating イベントで検証を行っていました。データ検証をドメイン モデルに移動して、ユーザー インターフェイスを簡単に交換し、すべてのロジックを 1 か所にまとめたいと考えています。

私は IDataErrorInfo を調べていましたが、見つけたものはすべて WPF であり、開発中のアプリは厳密には winforms アプリです。

また、WPF で使用されるバインディングは System.Windows.Data にあり、私がいつも使用しているバインディングは System.Windows.Forms にあることに気付きました (これを追加しようとしてもないようです)。リソースとして-私は3.5を使用しています。プロパティ「ValidatesOnDataErrors」以外に、2つに違いはありますか?

(1)通常の方法は次のとおりです。

0 投票する
1 に答える
320 参照

c# - IDataErrorInfo を実装する前ではなく、更新後に clr プロパティを検証するにはどうすればよいですか?

クラスの 1 つに IDataErrorInfo を実装して、そのクラスのプロパティを検証しました。プロパティは、wpf ユーザー コントロールのコントロールにバインドされています。検証は問題なく機能しますが、重大な欠陥が 1 つあります。

プロパティが更新される前に IDataErrorInfo メンバー public string this[string columnName] を呼び出しているように見えるため、変更されているプロパティの値を確認すると、入力したばかりの値ではなく、以前の値が含まれています。したがって、検証は常に一歩遅れています。これは、入力されたばかりの間違った値をチェックできないことを意味します。

プロパティが更新される前ではなく、更新された後にこの検証を強制的に呼び出す方法はありますか。UpdateSourceTrigger を LostFocus と PropertyChanged の両方に変更しようとしましたが、以前の値が異なる時点で報告されます。

ありがとう。