問題タブ [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.
asp.net - ViewModel 使用時の asp.net mvc IDataErrorInfo 検証
モデルに IDataErrorInfo 検証を使用しました。しかし、これらのモデル クラスをビュー モデル内で使用すると、検証が行われません。
以下のサンプルビューモデル
これで、Category クラスまたは Subcategory クラスがビューのモデルとして直接使用された場合、検証は正常に機能します。ただし、CategoryViewModel が使用されている場合、検証は行われません。
wpf - MVVM実装でIDataErrorInfoを使用してデータを検証する際の例外
IDataErrorInfoを使用してMVVMアプリケーションのデータを検証しようとしていますが、いくつかの問題が発生しています。
TextBoxに無効な値を設定すると、検証は正常に機能します。しかし、TextBoxの値を有効な値に設定した後、次の例外が発生します。
ビューのコードは次のとおりです。
そして、これがViewModelのコードです。
私はこれの何が悪いのかを2日間理解しようとしています!新鮮な目を持つ人はそれを理解できますか?
編集:TextBoxsハンドラーのコードは次のとおりです。
また、.NetFrameworkのバージョン3.5を使用しています。私のアプリケーションは非常に複雑なので、この部分だけを再作成する小さなプロジェクトを作成することはできません。私の希望は、あなた方の何人かがすでにこの問題を抱えていて、それを解決する方法を知っていることです。
みなさん、ありがとうございました!
wpf - IDataErrorInfoインターフェイスはどのように機能しますか?
現在、WPFアプリの検証を検討しており、の言及を確認していIDataErrorInfoます。しかし、それを使用する方法についてのガイドはほとんどなく、さらに悪いことに、それがどのように機能するかを説明する人は誰もいません。
MSND.comサイトでこれが提供されています: MSDN
ここで何が起こっているのかはわかりますが、データに対して実際に何が行われているのかわかりません。
これらの2つのプロパティはいつ使用されますか?Age誰かが400として設定したとしましょう:プロパティのセッターが呼び出されます。エラーが発生すると、設定が停止しますか?そうでない場合、番号が正しくないことを警告するだけの場合、誰かが情報をそのまま保存するのを防ぐにはどうすればよいですか?IsValid()確認する方法はありませんね。
カーテンの後ろで何が起こっているのか知りたいです。
wpf - IDataError を使用した検証
ビューモデルに次の検証メソッドがあります (例では、「ItemNumber」という 1 つの列のみが表示されています)。
検証が開始されましたが、それをデータグリッドに伝える方法がわかりません。ビューモデルにプロパティを直接持つのではなく、別の Dto を使用しています (したがって、上記の SelectedProjectExpenseItem.ItemNumber、SelectedProjectExpenseItem は私の Dto です)。ここに私のデータグリッドがあります:
行またはセルの問題を示すために、エラーを示す赤い境界線とツールチップなどのスタイルを使用したいと思います。ただし、スタイルを使用して見つけたすべての例には、ビューモデルに直接プロパティがあり、それを Dto に移植する方法がわかりません。
どんな助けでも大歓迎です。
wpf - ObservableCollectionのIDataErrorInfo
IDataErrorを実装するビューモデルがあります。ビューモデルには、ObservableCollectionがあります。ObservableCollectionは、私のビューのデータグリッドにデータを入力します。
データグリッドで選択されたアイテムを表すプロパティもあります(Dtoに基づいています)。
これがDtoです:
IDataErrorを使用して、データグリッドの選択された行(SelectedProjectExpenseItem)の値を検証したいのですが、グリッドがObservableCollectionにバインドされているため、ビューモデルにプロパティがありません。したがって、コレクション内の個々のアイテムではなく、ObservableCollectionに対してのみIDataErrorを使用できます。これは、コレクションの「内部」を確認する方法を知っているため、役に立ちません。SelectedProjectExpenseItemにもIDataErrorを使用できません。例えば:
データグリッド列がSelectedProjectExpenseItem.ItemNumberにバインドされていないため、これは発生しません。ObservableCollectionのItemNumberにバインドされています。
これは本当に私を混乱させるので、私はガイダンスを探しています。
- - - - - - - - - - - - - - 編集: - - - - - - - - - - --------
OK、DTO用に別のビューモデルを作成しました。
現在、メインVMの次の行で問題が発生しています。
それは言う:
タイプ「System.Collections.Generic.IList」を「System.Collections.Generic.IList」に暗黙的に変換することはできません。明示的な変換が存在します(キャストがありませんか?)
何か案は?
- - - - - - - - - - - - - - 編集: - - - - - - - - - - --------
私はこのリンクを見つけました。その人がしていることをコピーできるかどうかを確認します。
.net - .Net MVC2 カスタム ValidationAttribute を使用するときに ModelState にエラーを追加する方法
次の ValidationAttribute クラスがあります
コンストラクターで 2 つの日付プロパティ名と演算子を使用します。
検証メソッドでは、ステートメント LeftDate Operator RightDate の結果が返されます。
これは AttriuteTargets.Class 属性であるため、検証が失敗する原因となっているプロパティをフレームワークが認識できないことはわかっています。しかし、失敗しているのは Left Date プロパティであることを知っているため、モデル状態のエラーの ID をこのプロパティに設定したいと考えています。この理由は、失敗したフィールドをフォームでマークしたいからです。
質問: ModelState のエラー コレクションに追加されたエラー項目を変更して、その ID がフォームの特定のフィールドに対応するようにするにはどうすればよいですか?
c# - 親クラスにIDataErrorInfoを実装して子オブジェクトを検証する方法
MVVMアーキテクチャを使用してWPFアプリケーションを開発しています。私はWPFのアマチュアなので、我慢してください。
2つのモデルクラスがあります。親クラスには、そのプロパティとして別の(子)クラスのオブジェクトがあります。(つまり、ネストされたオブジェクトであり、継承されたオブジェクトではありません)
たとえば、次のシナリオについて考えてみます。
Enterprise LibraryValidationBlockを使用してEmployeeエンティティのプロパティを検証したいと思います。
以下に示すように、従業員クラスにIDataErroInfoインターフェイスを実装することでそれを行うことができました
作成するすべての子モデルにIDataErroInfoを実装したくありません。
親(Company)クラスにIDataErrorInfoを実装して、Employeeオブジェクトを検証する方法はありますか?
また、オブジェクトの検証を開始するためのトリガーもあります。常にではなく、必要な場合にのみオブジェクトを検証したいと思います。
c# - WPFでIDataErrorInfoを使用してTextBoxをスタイリングする
テキストボックスのスタイルを変更しようとしています。これまでに、テキストボックスの境界線の右側に次のコードのアスタリスクが表示されるようにしました。
ただし、テキストボックスを右上隅に赤い三角形で表示したいのですが。テキストボックスでこのスタイルを取得するにはどうすればよいですか?
ありがとう。
wpf - 検証ルールの問題
エラーを返すための検証ルールを取得しようとしています。モデルにIDataErrorInfoを実装しました。これには、検証が失敗した場合に返されるビジネスオブジェクトのプロパティとメッセージが含まれています。検証ルールも作成しました。問題は、検証ルールが実行されている(ブックマークされている)が、モデルのIDataErrorInfo実装がエラーを生成したとしても、ルール内のIDataErrorInfo参照にエラーが発生することはないということです。データグリッドは、検証に失敗したことを明確に示しています。
ルールとモデルに2つの異なるメッセージを返すようにしてテストしましたが、モデルのバージョンは常に返されます。これは、私のルールがIDataErrorInfoオブジェクトの内容を認識できない、または単にその新しいインスタンスを作成しているようなものです。
DataGrid:
検証ルール:
オブジェクト「idei」はnullではありませんが、idei.Errorは常に長さがゼロの文字列( "")です。
モデル/ビジネスオブジェクト:
c# - プロパティ セッター関数からの WPF データ検証
次のように、GUI要素にバインドされたクラスがあります。
MaxDistance プロパティのセッターは、次のように実装されています。
問題は、TextBox に無効な値を入力すると、「最大距離は最小距離より大きくなければならない」ではなく、「呼び出しのターゲットによって例外がスローされました」というツールチップが表示されることです。
ツールチップで ArgumentException の文字列を読み取るにはどうすればよいですか? 注: 標準の型変換の例外も適切に表示される必要があります (つまり、float の代わりに文字列を入力すると、標準のエラー メッセージが表示されるはずです)。
例外を IDataErrorInfo インターフェイスに移動することはできません。データが無効な場合はオブジェクトにデータを設定してはならず、プロパティがオブジェクトの他のプロパティに相互依存しているため、コンバーターまたは典型的な検証ルール...
上記の例では、バリデーションがあり、機能していますが、ユーザーに有用な情報を提示していません。
助けてくれてありがとう