在WinForms中,我可以處理Validated事件,以在用戶更改TextBox中的文本後執行某些操作。與TextChanged不同,Validated沒有針對每個字符更改進行觸發;它只會在用戶完成時觸發。WinForms中的等效項TextBox.Validating WPF中的事件
WPF中有什麼我可以用來得到相同的結果,只有在用戶完成後才提出的事件更改文本?
在WinForms中,我可以處理Validated事件,以在用戶更改TextBox中的文本後執行某些操作。與TextChanged不同,Validated沒有針對每個字符更改進行觸發;它只會在用戶完成時觸發。WinForms中的等效項TextBox.Validating WPF中的事件
WPF中有什麼我可以用來得到相同的結果,只有在用戶完成後才提出的事件更改文本?
LostFocus將在用戶從您的文本框移動到任何其他控件時觸發。
您也可以嘗試Binding.ValidationRules
的記載:http://msdn.microsoft.com/en-us/library/system.windows.data.binding.validationrules.aspx
下面是文章開始:
如何實現綁定驗證:
似乎沒有本地解決方案。 LostFocus事件是一個好主意。但是當用戶點擊Enter時,他希望TextBox驗證更改。 所以這裏是我的建議:當密鑰爲Enter時,使用LostFocus事件和KeyDown事件。
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
// code to lauch after validation
}
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
// call the LostFocus event to validate the TextBox
((TextBox)sender).RaiseEvent(new RoutedEventArgs(TextBox.LostFocusEvent));
}
}
LostFocus與驗證不等效。當你在一個屏幕上有多個文本框,並且每個文本框都有一些寫在Validate中的邏輯時,它會產生很多問題。在驗證事件中,您可以輕鬆地控制焦點,但無法輕鬆控制焦點。