Equivalente al evento WinForms TextBox.Validating en WPF

En WinForms, pude manejar el evento Validado para hacer algo después de que el usuario cambió el texto en un cuadro de texto. A diferencia de TextChanged, Validated no se activó por cada cambio de personaje; sólo se disparó cuando el usuario estaba hecho.

¿Hay algo en WPF que pueda usar para obtener el mismo resultado, un evento generado solo después de que el usuario haya terminado de cambiar el texto?

LostFocus se activará cuando el usuario se mueva de su cuadro de texto a cualquier otro control.

Parece que no hay solución nativa. El evento LostFocus es una buena idea. Pero cuando el usuario hace clic en Intro, quiere que el TextBox valide el cambio. Así que aquí está mi sugerencia: use el evento LostFocus y el evento KeyDown cuando la tecla es Enter.

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 no es equivalente a Validar. Crea muchos problemas cuando tiene varios cuadros de texto en una pantalla y cada cuadro de texto tiene algo de lógica escrita en Validar. En el evento de validación, puedes controlar el enfoque fácilmente pero no tan fácilmente en LostFocus.

También puedes probar Binding.ValidationRules

Documentado en: http://msdn.microsoft.com/en-us/library/system.windows.data.binding.validationrules.aspx

Aquí está el artículo para empezar:

Cómo implementar validaciones de enlace:

http://msdn.microsoft.com/en-us/library/ms753962.aspx