2011-06-23 9 views
1

Silverlight 3で検証するためにプログラムで強制的に強制することはありますか?Silverlight 3のUIElement(テキストボックス)でプログラムによる強制検証

私はSilverlight.Validators.RegexValidatorをバインドするテキストボックスを持っていますが、残念ながらバリデータは別のuielementsコンテンツ(コンボボックス)に対してチェックします。そのコンボボックス上の通常onSelectionChanged - 選択された項目はバリデーターに設定され、テキストボックスの内容が変更されたとき(キーが押されたとき)にチェックされます。

しかし、私はまた、コンボボックスの選択は、私がmyTextBox.Validate();またはmyTextBox.KeyUp()のようにも何かの検証を強制するような何かを行うことができます

を変更したときに、再び同じ検証を実行したいですか?あなたのTextBox.Textプロパティは、いくつかのプロパティにバインドされ、あなたが検証につながるはずのソースを、更新するバインディングを強制できると仮定すると、

おかげ

答えて

1

var bindingExpression = textBox.GetBindingExpression(TextBox.TextProperty); 
bindingExpression.UpdateSource(); 
0

組み込みバインディング検証システムではなく、this toolkitが使用されているようです。 ValidatorBaseによると、バリデータオブジェクトでValidate(true)と呼ぶべきです。

official Silverlight data validation supportに移動することを強くお勧めします。これは、KeyUpでTextBox.Textを検証するよりもはるかに堅牢です。正規表現検証の場合、TextBoxがバインドするプロパティにRegularExpressionAttributeを適用できます。バインディング検証が設定されたら、エドチャペルの答えがあなたのために働くでしょう。 Silverlightが自動的に検証を再クエリーする可能性もあり、SelectionChangedをまったく処理する必要はありません。

関連する問題