2011-06-23 56 views
1

是否有一種編程方式可以輕鬆地在Silverlight 3中強制驗證元素?以編程方式在Silverlight 3上強制驗證UIElement(Textbox)

我有一個文本框,我綁定了一個Silverlight.Validators.RegexValidator,遺憾的是驗證器檢查另一個uielements內容(組合框)。通常onSelectionChanged在該組合框 - 其選定的項目設置在驗證器中,並且當文本框內容改變時(按鍵),它檢查這個。

,但我也想再次運行相同的驗證時,組合框選擇改變

我可以這樣做myTextBox.Validate();甚至像myTextBox.KeyUp()強制驗證?

感謝

回答

1

假設你TextBox.Text屬性綁定到一些財產,你可以強制綁定更新源,這應該引起驗證。

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

看來您使用this toolkit而不是內置的綁定驗證系統。根據ValidatorBase,你應該在你的驗證器對象上調用Validate(true)

我強烈建議您嘗試轉移到official Silverlight data validation support,這比僅在KeyUp上驗證TextBox.Text更加健壯。對於正則表達式驗證,您可以將RegularExpressionAttribute應用於TextBox綁定的屬性。一旦建立了結合驗證,Ed Chapel的答案將適用於您。 Silverlight也可能會自動重新驗證驗證,並且根本不需要處理SelectionChanged。