問題タブ [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.
wpf - WPFにコントロールの再検証を強制する方法は?
ビジネス データに基づいて一部のフィールドを表示し、他のフィールドを表示しないビジネス ルールを含む画面があります。次に、可視性で遊んで、それらを表示/非表示にします。
私のビジネス オブジェクトは IDataErrorInfo を実装しています。
私が抱えている問題は、フィールドが表示されている場合にのみ検証の一部が関係することです。
このコードの抜粋では、type_account が INTERNAL の場合にのみ、最初の IF が検証を行います。
私が抱えている問題は、BOの初期状態が「内部」ではないため、ユーザーが「内部」を選択した後でも検証が再び行われないことです。
初めての後に検証を「強制」するにはどうすればよいですか。もちろん、初期状態が「内部」の場合は動作することを確認しました
wpf - プロパティの複数のエラーメッセージを含むIDataErrorInfo
他の誰かがこの問題を抱えているようです: Validation.HasErrorは、すでにtrueの間に新しいエラーが発生した場合、再度トリガーされません
Validation.Errorは、最新のエラーメッセージで更新されていません。
これは、実際に最後に呼び出されたエラーではなく、前のエラーを示しています。各リターンをログに記録すると、PropertyXが返されるよりも大きいか、PropertyXがよりも小さいことが返されますが、ツールチップにそのメッセージが表示されません。「必須」と表示されます。
また、PropertyXが返される値よりも大きい場合、またはPropertyXが返される値よりも小さい場合、ツールチップのコンバーターが呼び出されないこともわかりました。
検証コードは次のとおりです。
何が起こっている?
wpf - int列DataGridの場合にIDataErrorInfoが起動しない
'int'型のプロパティでバインドされた列を持つDataGridがあります。検証にIDataErrorInfoを使用しています。私の検証ルールは正常に機能しており、セルの値を変更するとすぐに実行されます。ユーザーが0未満の値を入力したとすると、ツールチップにそれぞれのエラーが表示されます。ユーザーがテキストボックスの値をクリアすると問題が発生します。その場合、IDataErrorInfoは起動せず、その結果、値を空にすることはできないというツールチップを介してユーザー検証エラーを表示できません。DataGridは、テキストボックスの周囲に赤い境界線を作成します。これは問題ありません。行ヘッダーで署名しますが、IDataErrorInfoが発生しないため、ツールチップに検証エラーはありません。テキストボックスの値がクリアされた場合にIDataError情報を起動するためにできることはありますか?
編集:
XAML
DisplayOrderプロパティ
c# - IDataErrorInfoを使用してMVVMで検証を実行するときに、データベースに値がすでに存在するかどうかを確認するために、どこでチェックを実行する必要がありますか?
このすべてのMVVMのことを始めて、私はMVVMを使用している間の検証へのアプローチについて話しているJoshSmithによるこの投稿をフォローしていました。例は単純で、自分のアプリケーションでどのように使用するのか疑問に思い始めました。
私のBLLには、BookInfoIDataErrorInfoを実装して、「公開日を将来にすることはできません」や「ページ数を負にすることはできません」などの無効な値を報告するクラスがあります。次に、AddBookViewModel新しく作成された状態をチェックし、BookInfoエラーが存在することを確認AddBookViewすると、適切なテキストボックスの横に赤いブロブが表示されます。投稿の例のように、そのようなものは簡単です。
現在、私のBookInfoクラスには作成者IDのリストも含まれています。データベースに新しいBookInfoを追加するときに、それらの作成者IDがすでに存在するかどうかを確認する必要があります。
このチェックは私のBookInfoクラスで行う必要がありますか?その場合、前者には。などのメソッドが含まれるため、BLLのAuthorManagerオブジェクトをBookInfoのコンストラクターに渡す必要がありますCheckIfExists(int authorID)。
これは推奨されるアプローチですか?DBにレコードがたくさんある場合はどうなりますか?動的にチェックするとパフォーマンスに影響しますか?
一方、BookInfoクラス内や他の場所でいくつかのチェックを実行するのは少し面倒に思えます...特にそれらすべてのチェックを同じグループに分類できる場合...つまり。新しく作成されたBookInfoオブジェクトが有効であることを確認してください。あるいは、適切な判断を下す経験があまりないので、間違っているかもしれません。
いくつかのガイダンス?
wpf - 1 つ以上のチェックボックスを強制的に選択する
チェックされていることが有効かどうかについて独自のエラーチェックを行う3つのチェックボックスがありますが、続行する前に少なくとも1つをチェックする必要があることも強制したいと思います。現在、個々のエラー チェックに IDataErrorInfo を使用しており、BindingGroups を使用して、少なくとも 1 つのエラーがチェックされていることを確認しようとしましたが、成功しませんでした。
これがXAMLです。
そして、背後にあるエラーチェックコード
少なくとも 1 つが選択されていない場合に、チェックボックスにエラーを表示させる方法について何か提案はありますか?
mvvm - MVVMモデルはどうあるべきですか?
こんにちは、MVVM モデルについて 3 つの質問があります。
- その冗長性をバイパスする方法はありませんか
PropertyChanged("PropName"); - POCOオブジェクトをWPFにラップする最良の方法は何ですか?
INotifyPropertyChanged, IDataErrorInfo - ViewModel 内で (WPfWrapers - POCO) と対話するにはどうすればよいですか - キャストまたはプロパティを介して...
ありがとう。
wpf - WPF データ検証? IDataErrorInfo より優れたものはありますか?
ViewModel 内からデータ検証を行うための推奨される方法はありますか?
調べてみるとIDataErrorInfo、独自の検証フレームワーク (http://www.codeproject.com/KB/WPF/wpf_custom_validation.aspx) を展開することを好む人もいれば、好む人もいますか?
データ検証の「ベストプラクティス」とは何ですか? MV-VM ガイドラインを遵守することに関して、コミュニティによって受け入れられているものはありますか?
ああ、参考までに、私は Prism を MVVM フレームワークとして使用していますが、検証支援のためのコードがレイアウトされているとは思いません。
silverlight - バインド時のデータ形式の Silverlight エラー
特定の範囲外のように、プロパティがバインディング(MVVM)を介して値を取得するときに発生する可能性のあるすべてのエラーに注意を払っています。
これは、チェックしたいコントロールで「ValidatesOnDataErrors」を使用することで完全に機能しています。
問題は、指定された値が modelView のそのプロパティによって受け入れられるかどうかを確認しようとしたときに発生します。
たとえば、DateTimePicker コントロールに「june」と書き込むと、バインドが壊れている (プロパティが DateTime である) ため、値が取得されず、残りのルールと同じ方法でエラーを制御できません。
これをどのように試せばよいですか?解決策はありますか?
前もって感謝します!!
validation - ItemsControl 内の TextBox で ValidatesOnDataErrors を使用する方法
IDataErrorInfo を使用して TextBox のコンテンツを検証しようとしています。以下のリストのソースはリストであり、各項目が表示されます。ValidatesOnDataErrors=TrueTextBox にテキストのバインディングを配置すると、期待どおりに動作しません。どうすればいいですか?
更新: Model、ViewModel、View、および CodeBehind の簡素化されたバージョンを投稿する
ViewModel とモデル
コードビハインド
意見
wpf - WPF + MVVM + エンタープライズ ライブラリ検証ブロック
私は新しい WPF MVVM アプリを開始していIDataErrorInfoます。モデルとビューモデルで使用する前に、「以前よりも優れた」検証を処理する方法を理解しようとしています。問題なく動作しましたが、後で拡張するのは難しく、ほとんどの場合、多くの手動配線が必要でした. IDataErrorInfoViewModel 検証を接続するための良い方法だと確信していますが、Enterprise Library を使用してモデルを検証したいのですが、オブジェクト全体ではなく一度に 1 つのプロパティを実際に検証する方法はありますか? ?
または、ELによって生成された構成を使用する他の賢い方法はありますか?
アイデアやその他の提案はありますか?
アップデート
多かれ少なかれ探していたものを見つけたと思います:(http://entlib.codeplex.com/discussions/233057から)
しかし、それは、ViewModel次のようなことをするのではなく、モデル インスタンスで作業する必要があることを意味します。
モデルインスタンスで作業するか、ViewModelレイヤーで検証する必要があるようです-これは避けたいと思っていました。
... それとも、ほとんどの人にとって本当によく知られていて明らかな何かが欠けているのでしょうか ... ?
どんな提案でも大歓迎です。