問題タブ [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.
c# - WPF - ValidationRule が呼び出されていません
これは、私が以前に尋ねた質問に対するフォローアップの質問です。
WPF - ValidationRule が呼び出されていません
そこで実装するように言われたINotifyDataErrorInfo
ので、実装しましたが、まだ機能しません。
xaml は次のとおりです。
ビューモデルで:
そして検証ルール:
FileDialog を開いて ViewModel の Path プロパティを更新するボタンも表示されます。
TextBlock が更新されると、バインディング自体が機能し、set プロパティが呼び出されますが、検証規則自体は呼び出されません。ここで何が欠けている/間違っていますか?
wpf - 起動時のWPF 4.5空のTextBox検証
検証ルールを備えた単純なテキストボックスがありますが、特別な状況で非常に奇妙な動作をします。
コードをこのように使用し、プロパティが 0 (db からのもの) である場合、期待どおりに動作します。TextBox は、開始時に赤い境界線を取得します。
私の検証ルール:
問題は、このフィールドを必須にしたいので、空は無効です。
検証ルールを次のようにしたいので:
そして、私の大きな頭痛があります。検証関数は正しい結果を返しますが、赤い境界線はありません。正しい値を入力して間違った値 (空または 0) に変更すると、赤い境界線が表示されます。
wpf - ValidationRule の赤い枠の問題
私の WPF アプリケーションでは、TextBox の ValidationRules を作成して、正常に機能する空の文字列を許可しないようにし、空にすることはできないことをユーザーに伝えるテキストで赤い境界線を表示します。アプリケーションが起動すると、すべてのフィールドが入力待ちの空白になっていますが、まだそれらの周りに赤い境界線が表示されています。これは正常な動作ですか?注:フォームが最初にロードされたときではなく、ユーザーがフォームを使用しているときに、propertychangeイベントまたはlostfocusイベントのいずれかが発生した後に発生することをお勧めします。
私が行っている検証の例:
私の TextBoxNotEmptyValidationRule クラス:
.net - LostFocus で ValidationRule 派生クラスを呼び出すために ValidationRule ベース コンストラクターが必要なのはなぜですか?
ValidationRule
次のように、基本コンストラクターを呼び出さない場合の理由を理解しようとしています
次に、検証ルールを呼び出す必要があるときに(以下に示すようLostFocus
に on a を使用して)、が実際にフォーカスを失った場合、関数はまったく呼び出されません。ただし、以下をに変更すると、が呼び出されますが、スタック オーバーフローが発生するまで無限に続きます。関連する XAML は次のとおりです。TextBox
Validate
TextBox
UpdateSourceTrigger
PropertyChanged
GrainWeightValidate.Validate()
c# - System.Windows.Controls.ValidationRule はプロパティの値の型のみをサポートしますか
次の System.Windows.ValidationRule を使用しています。
私のXAMLはこのように表示されます。
ここまでは順調ですね。XAML ダイアログのコード ビハインドで、次のように ValidationRule を初期化します。
ポイントは、XXXValidationRule.Validate がトリガーされると、FooObject プロパティが常に null になることです。
Property FooObject の値型 int を使用すると、同じ効果が得られます。
値の型 int を引き続き使用し、次のように XAML でプロパティを明示的に設定すると、検証規則内で正しい値 (99) を受け取ります。
まず、ValidationRule は値型のみをサポートしていますか、それとも上記のように参照型を操作する方法はありますか? 次に、そのようなプロパティを XAML で明示的に設定する必要がありますか、それともコード ビハインドで設定する方法はありますか?
手伝ってくれてありがとう :-)
vba - VBA/Access でプログラムによって検証規則をテストする方法
設計テーブルに検証ルールを設定しており、レコードセットで行った変更を保存する前にそれをテストしたいと考えています。
c# - DataTable にバインドされた Datagrid の ValidationRule を介して入力を検証する
Q: dataGrid 検証ルールが、行/セルの変更前ではなく変更後に入力を検証するようにするにはどうすればよいですか。
C:自動生成された列と検証ルールを含む datatgrid があります。
データグリッドは、データベースからのデータを入力した後、dataTable にバインドされます ....
...
プログラムを開始すると、すべてのデータが期待どおりに視覚化され、ビルド時にデータグリッドの検証がトリガーされます。しかし、新しいデータをdataGridに追加すると、たとえば新しい行で、特定のセルに書き込んだデータを考慮せずに、変更されていないデータに対して検証が行われます。
詳細を忘れてしまったようで、解決策はそう遠くないようです。dataTable と DataGrid の間のバインドの問題ですか? または、プログラムで検証をトリガーする必要がありますか? それを処理する最良の方法は何ですか?
wpf - 行にエラー検証ルールがある場合でも、データグリッド行の編集を続行します
データグリッドに ValidationRule を配置すると、検証ルールは正常に機能しますが、行にエラーがある場合、他の行や他のセルを編集できません。
ユーザーが間違った値を入力して修正できるようにしたい。wpf検証ルールでこれを行うことはできますか?
wpf - TextBox.Tag を独自の ValidationRule に渡す
TextBox の 'Tag' プロパティを使用して、テキストの検証のために無効な文字 (または最終的には正規表現文字列) を保存したいと考えています。私の簡単な例では、「A」のインスタンスの TextBox テキストをチェックしています。
次のように、カスタム ValidationRule と DependencyObjects を適切に設定しました。
これは機能します:
しかし、これは機能しません:
...次のエラーが発生します: System.Windows.Data Error: 40 : BindingExpression path error: 'Tag' プロパティが 'object' ''CheckStringWrapper' (HashCode=6677811)' に見つかりません。BindingExpression: パス = タグ; DataItem='CheckStringWrapper' (HashCode=6677811); ターゲット要素は 'CheckStringWrapper' (HashCode=6677811) です。ターゲット プロパティは 'CheckString' (タイプ 'String') です
完全なコード: XAML
クラス: