問題タブ [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 投票する
3 に答える
1344 参照

wpf - IDataErrorInfoビジネスオブジェクトのエラーを単体テストするにはどうすればよいですか?

WPFアプリケーションの単体テストを作成しています(作成しようとしています)。

UIがIDataErrorInfoを実装するためにバインドするビジネスオブジェクト。たとえば、ViewxamlでValidatesOnDataErrors= Trueを設定すると、バインドされたビジネスオブジェクトのセッターが呼び出されるたびにエラーインデクサー(this [])が呼び出されます。その部分は素晴らしいです。

これで、同じプロパティのセッターをunitTestから呼び出すと、エラーインデクサーが呼び出されることはありません。単体テスト内からIDataErrorInfoインデクサーを強制的に評価するにはどうすればよいですか?

説明のために、Nameプロパティを含む単純なエラーインデクサーの1つを次に示します。'myObject.Name=string.Empty;'を設定します 単体テストでこれを行うと、セッターは呼び出されますが、エラーインデクサーは呼び出されません。

ありがとう!

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

c# - WPF 検証 (IDataErrorInfo) とタブ フォーカスの問題

TextBox実装するオブジェクトのプロパティにバインドしていますIDataErrorInfo。の をセットアップしましたValidation.ErrorTemplateが、TextBox正常に動作します。問題は、これらが にありTabControl、タブを別のタブに変更してから最初のタブ ( がある場所) に戻ると、検証テンプレートが表示されなくなることですTextBox。(値が正しいように)検証されているように見えますが、実際にはそうではありません。

これがIDataErrorInfoオブジェクトです。「正しい」値は長さ 2 の文字列であることに注意してください。

これは XAML です。

私が間違っていることについてのアイデアはありますか?

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

c# - 検証エラーをWPFのUI要素に渡しますか?

IDataErrorInfoを使用して、WPFのフォームでデータを検証しています。プレゼンターに検証を実装しました。

実際の検証は行われていますが、UIを更新してスタイルを設定することになっているXAMLは行われていません。

ここにあります:

問題は、へのバインディングにValidation.Errorsデータが含まれていないことです。このデータをPresenterクラスから取得し、このXAMLに渡して、UI要素を更新するにはどうすればよいですか?

編集:

テキストボックス:

検証は行われますが、データが無効な場合に適用されるスタイルは発生していません。

0 投票する
0 に答える
487 参照

c# - ValueConverter を使用した IDataErrorInfo

私はどういうわけかそれを間違っていますが、私はそれを理解することはできません:

私はこのようなモデルを持っています:

このような ValueConverter:

そして、このようなビュー:

誰かが「1.1.1950」のような有効な日付を「1.1.abc」のような無効な日付に変更した場合、その値はその人に伝わらず、無効にはなりません。ただし、生年月日テキストボックスの周りに赤い境界線が表示されます。無効なテキスト (ユーザーが変更する) を保持し、IDataErrorInfo のエラーを登録するにはどうすればよいですか?

0 投票する
6 に答える
6727 参照

wpf - WPF 検証 & IDataErrorInfo

注 - 私が持っているEntityObjectクラスはクラスです!

私は次のクラスを持っています:

XAML は次のようになります。

そこにブレークポイントとConsole.Writeline検証を配置しました-ブレークはありません。検証は実行されません。私の過ちがどこにあるのか、誰かに押し付けてもらえますか?

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

wpf - IDataErrorInfo:ページが送信されたときに検証する

IDataErrorInfoビジネスオブジェクトが実装するデータ検証を使用するWPFアプリケーションを作成しています。私は理解するためにブログ投稿からこのデモをValidatesOnDataErrors使用しています。

デモは、いくつかのテキストボックスをContactオブジェクトにバインドし、データバインディングIDataErrorInfoで使用して検証を実装する簡単なアプリです。ValidatesOnDataErrors=True有効にするには、テキストボックスに少なくとも5文字が必要です。

これが私の問題です。デモでは、テキストボックスがフォーカスを失うたびに検証がトリガーされます。実際、アプリケーションの起動時に、テキストボックスは無効な状態(赤い境界線)に初期化されます。ユーザーが[OK]ボタンをクリックしてページを送信するまで、アプリは検証を延期する必要があります。その際、テキストボックスを検証し、無効な場合はエラー状態にする必要があります。

では、ユーザーが[OK]ボタンをクリックするまで、テキストボックスの検証を延期するにはどうすればよいでしょうか。ご協力いただきありがとうございます。

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

wpf - ContentPresenter による WPF 検証

いくつかのフィールドを検証する必要がある WPF ユーザー コントロールがあります。IDataErrorInfo を実装するクラスにバインドされます。

既に開いている別のウィンドウで ContentPresenter のコンテンツとしてユーザー コントロールを設定すると、検証が行われ、エラー メッセージが返されるのを確認できますが、検証ガイド (既定の赤いアウトラインなど) が表示されません。

フィールドに入ってそのままにしておくと (再検証がトリガーされます)、検証ガイドが表示されます。

また、独自のウィンドウにユーザー コントロールを表示すると、すぐに検証ガイドが表示されます。

(私は Caliburn IResults を使用してこれを下で実行していますが、Show.Dialog<VM>();これは関連していないと思われます)

検証装飾がすぐに表示されない理由を誰かが提案できますか? (ContentPresenter ContentChanged でアニメーションを推測していましたが、これを削除してもまだ問題が発生しています。

ありがとう、クリス

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

wpf - Validation.HasError 添付プロパティ

私は何か見落としてますか?

1- スタイル

2 - ビューモデルは IDataErrorInfo を実装します 3 - ビュー内の textBox

3 - Caliburn MVVM を使用しています

「BindingExpression path error: 'Validation' property not found on 'object' ''PersonWindowViewModel' (HashCode=38783181)'. BindingExpression:Path=Validation.HasError; DataItem='PersonWindowViewModel' (HashCode=38783181); ターゲット要素は'TextBox' (Name='FirstName'); ターゲット プロパティは 'NoTarget' (type 'Object')"S

0 投票する
3 に答える
6726 参照

wpf - IDataErrorInfo vs ValidationRule vs Exception

WPF での検証に適した方法を教えてください。

  1. IDataErrorInfo の実装
  2. ValidationRule の作成
  3. 例外のスロー

パフォーマンス、メモリ リーク、コードの保守性、および再利用の観点から。

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

wpf - 検証とマルチバインディングの問題

私の WPF アプリケーションでは、次の xaml を使用しています: ...

最初のバインディングが使用するビュー モデル クラスは、検証のために IDataErrorInfo を実装します。問題は、エラーがプロパティ セッターでキャッチされているにもかかわらず、UI がそれに気付かないことです。テキスト ボックスでエラーが発生したときに適用する必要があるエラー テンプレートで定義されたスタイルがあります。シングルバインディングを使用するとすべてが正常に機能するため、このシナリオはマルチバインディングでは許可されない可能性があると思います。

前もって感謝します。