問題タブ [validationrule]

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 投票する
1 に答える
689 参照

wpf - ValidateWithoutUpdateは、構成されたValidationRulesを実行しませんか?

BindingExpression.ValidateWithoutUpdate()の呼び出しが、実際にアドバタイズすることを行わない理由を理解しようとしています。

添付プロパティを介して(たとえば、コードから)バインディングに追加する必要があるいくつかの気難しい検証があります(サンプルコードから退屈な詳細を削除しました。WF4ModelItemの制限に関係していると言えば十分です)。 xamlではありません)。

ここでクレイジーなことは何もありません。ただし、問題は、コントロールが最初に表示されたときに検証が実行されないため、UIに検証エラーが表示されないことです。

バインディングは見栄えがよく、値が変更された後も機能しますが、最初に表示されたときに、予想される赤い境界線の代わりに眉をひそめた顔が表示されます。

ここに画像の説明を入力してください

最初に、ValidationRuleをBindingに追加した後、 ValidateWithoutUpdateを呼び出してみました。 これはうまくいかなかったようです。後で、ディスパッチャーを使用して、アプリケーションがすべて暖かく居心地の良いものになるまで、この呼び出しを延期しました(お茶がまだ醸造を終えていないため、検証されなかった可能性があります、地獄私は知りません)

これは一度はうまくいったと確信しています。 一度。二度と働きませんでした。私の側では間違った観察だったかもしれません。

後で、ValidateWithoutUpdateを取得して実際に何かを実行するために、さまざまなことを試しました。私はそれをイベントハンドラー内から呼び出してみましたが、それはずっと先に起こります

friggenが機能することはありません。

BindingExpression.ValidateWithoutUpdate()をfriggen検証するために何をする必要がありますか?!?!

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

wpf - 親子 ValidationRule

ValidationRules を使用する複雑なシナリオがあり、助けが必要です。次のように大まかに編成されたユーザーコントロールがあります。

Child 1.Property 1 が変更されたら、検証を実行する必要があります。ただし、検証ルールでは、検証を実行するために、Child 1.Property 1 の値と、そのすべての兄弟 (変数番号) の Property 1 の値が必要です。Parent ItemsControl に ValidationRule を配置できますが、エラーを表示するには、Control を Child1.Property1 にバインドする必要があります。現在、親に検証を配置すると、子ではなく親にエラーが表示されます。BindingGroups の使用も検討しましたが、プロパティが変更されたときに検証を自動的に実行したいと考えています。私の知る限り、BindingGroup に対して Validation を自動的に強制的に実行する方法はありません。

私がやろうとしていることを達成する方法はありますか?

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

wpf - PasswordControl と ValidationRule エラーを手動で表示する

入力したテキストが短すぎるとエラーを返すカスタム ValidationRule があります。Text プロパティをソースにバインドしてから、ルールをバインドに追加できるため、これは標準の TextBox では問題なく機能します。ユーザーが短すぎる文字列を入力すると、ルールが実行され、コントロールは、コントロールの周りに赤い境界線を表示して検証の問題を示します。

ただし、PasswordControl では、セキュリティ上の理由から、Password フィールドをデータ バインドすることはできません。その代わりに、lost focus イベントにフックし、ValidationRule を手動で作成して実行し、問題があるかどうかを確認します。しかし、Validate には、コントロールの検証エラーのコレクションにエラーを追加できるパブリック メソッドはありません。Validate.Errors コレクションを手動で更新することは可能ですか? そうでない場合、PasswordControl にエラー状態で表示するように指示する方法はありますか?

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

c# - ComboBox の ItemsSource を ValidationRule に送信する

ユーザー入力 (ハンドラー クラスの値) が (ItemsSource の) リストで見つかるかどうかを確認するために、検証クラスに ItemsSource オブジェクトを渡したいと思います。

ComboBox の ItemsSource をハンドラ クラス RestrictedComboBoxItemValidationRule に送信するにはどうすればよいですか? (またはItemsSourceの代わりに私のComboBox-controll)

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

wpf - ValidationRuleが成功した後もWPF TextBoxの赤い境界線が表示される

非常に単純な ValidationRule を持つテキスト ボックスがあります。

問題は、テキスト ボックスが空でないデータにバインドされている場合でも、起動時に赤い検証エラーの境界線が表示されることです。

検証ルールのブレークポイントを見ると、(バインディングが有効なデータに変更される前に) 空の文字列に対して 1 回呼び出され、バインディングが有効なデータに更新された後にもう一度呼び出されることがわかります。案の定、2 番目の呼び出しは ValidResult を返しますが、赤い境界線は残っています。

テキストボックスを手動でクリアして新しいテキストを入力すると、赤い境界線がクリアされますが、最初にクリアせずに新しいテキストを入力するだけではクリアされません。

他の人々の質問を読むことから、私が見ることができる1つの潜在的なトリッキーは、このTextBoxがタブコントロールにあるということです。ただし、私の問題は他の人々の反対であり (検証に失敗したにもかかわらず赤い境界線が表示されませんでした)、別のタブ コントロールに移動することもありません (これが他の問題の原因でした)。

私がここで見逃しているアイデアはありますか?

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

c# - WPF テキストボックスの ValidationRule

私は WPF の初心者です。私の UserControl には、次のように 8 つのラベルとそれぞれの 8 つのテキスト ボックスがあります。

これらの各テキスト ボックス テキスト プロパティには、それぞれのラベル名で終わるテキストが含まれている必要TextBox1.textがあります。xxxx.abcTextBox2.text

詳細が明確であることを願っています.だから、ValidationRuleテキストボックスごとに異なるものを書く必要がありますか??

入力したものはありますか??

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

asp.net-mvc - .NET MVC クライアント側検証で ValidationParameters にアクセスできない

.NET MVC 4 アプリケーションにカスタム検証をコーディングしています。これはパラメーターを使用する最初の検証であり、これを取得するのに問題があることがわかっています。

これは私のC#コードです:

検証属性:

ModelClientValidationRule:

そして、ここにJSコード、私の問題があります:

助けてくれてありがとう!

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

wpf - WPF 検証エラー

私の現在のプロジェクトでは、WPF フォームでデータ検証を処理する必要があります。私のフォームは ResourceDictionnary の DataTemplate にあります。(2 つのDelegateCommandを介して) データをシリアル化および逆シリアル化する 2 つのボタンのおかげで、フォームからデータを保存およびロードできます。

フォームの 1 つのフィールドが空または無効な場合、保存ボタンが無効になります。UpdateSourceTrigger プロパティにより、変更されるたびにフィールドがチェックされます。そのため、保存コマンドを更新するためにフィールドが無効かどうかを C# コードで知る必要があります。

現在、XAML Binding で ExceptionValidationRule を使用していますが、これが適切な方法であるかどうか疑問に思っています。保存コマンドを更新する (保存ボタンを有効または無効にする) ために、フィールドが無効かどうかを C# コードで知る必要があるため、ValidationRule を実装できません。

このブログでは、次のことを読むことができます。

これらのプロパティはコードによっても設定され、一時的にエラー値を残しても問題ない場合があるため、Setter で例外を発生させることはあまり良い方法ではありません。

この投稿は既に読みましたが、使用できません。TextBox は DataTemplate にあり、C# コードでは使用できません。

したがって、データ検証を変更して、ExceptionValidationRule を使用しないようにする必要があるのではないかと考えています。

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

c# - TextBoxの値をValidationRuleに渡す

2つのTextBoxコントロール(次のように)があり、現在の値1ではなく、最初のTextBox[]のTextを2番目のTextBox[ ]x:Name="defPointFrom1Txt"のValidationRule[ ]に渡したいと考えています。最初のTextBoxの値が変更されたときのイベントに基づく検証ルールと設定。ただし、XAMLでこれを実行して、すべての検証ロジックを1か所に保持する方法はありますか? MinIntegerValidationRulex:Name="defPointTo1Txt"

完全を期すために、私の検証ルールコードを以下に示します。

アップデート:

以下の回答に応えて、私はDependencyObjectを作成しようとしています。私はそれを次のように行いましたが、ValidationRuleコードでそれを使用する方法がわかりません(または正しく作成したことさえわかりません)。