我有一個WPF UserControl與其中的許多其他控件。 TextBoxes是其中之一。 每個文本框都有自己驗證:WPF驗證:清除所有驗證錯誤
<TextBox>
<TextBox.Text>
<Binding Path="MyPath" StringFormat="{}{0:N}" NotifyOnValidationError="True">
<Binding.ValidationRules>
<r:MyValidationRule ValidationType="decimal" />
</Binding.ValidationRules>
</Binding>
<TextBox.Text>
<TextBox>
一個
現在假設用戶鍵入一些無效字符融入其中。他們都會變得突出紅色。
現在我想重置所有驗證錯誤(從輸入不正確),從DataContext
未來設置的最近正確的價值觀。
我設置的DataContext在構造函數中,我不想改變它(的DataContext = NULL不會幫我當時):
DataContext = _myDataContext = new MyDataContext(..);
我已經發現有這些類:
Validation.ClearInvalid(..)
BindingExpression.UpdateTarget();
我認爲這些課程可以幫助我,但他們需要一個具體的FrameworkElement
的Binding
,我想對所有的人都做全球的。
我應該通過可視樹(這真的是我不喜歡)迭代或有沒有更好的解決方案呢?
當您綁定正確的值時,則會自動重置驗證錯誤。你是否使用INotifyPropertyChanged接口來viewmodel&Property會引發屬性改變的事件? – Ragunathan 2010-06-30 10:28:01
是的,我正在使用它..這是我第一次嘗試。但是DataSource沒有改變。因此,WPF不會反映舊值 – 2010-06-30 10:58:56