validationrule wpf
ValidaciĆ³n de WPF-ValidatesOnTargetUpdated (1)
Es posible que desee leer esta publicación en el foro . Creo que la parte que pertenece a su situación es:
Problema: la plantilla de error no se muestra cuando se carga una página
Esto es por diseño, ya que se podría suponer que el usuario no desea ver los mensajes de error antes de cometer errores, pero a veces uno necesita esta funcionalidad. Por lo tanto, la propiedad ValidatesOnTargetUpdated se introdujo en la clase ValidationRule; al establecerlo en verdadero, uno ve el resultado de la validación de inmediato. Sin embargo, hay una advertencia: debe asegurarse de configurar el DataContext después de inicializar la página; esto sería en el constructor después de la línea de comentario generada que dice que el código de inicialización debe ir allí, o en el evento Loaded. Si desea establecer el DataContext en XAML, encontrará una solución para este problema aquí: http://wpfglue.wordpress.com/2009/12/08/navigating-from-object-to-object/
Sin embargo, he escuchado que esto se solucionará en WPF 4.0.
EDITAR:
Un enlace más permanente se puede encontrar aquí .
Tengo una cantidad de cuadros de texto en una aplicación de WPF en los que he configurado alguna validación.
Al cargar, la aplicación deserializa una clase a la que están vinculados los controles de la ventana de WPF.
Tengo una ValidationRule que (por ejemplo) prueba que existe un archivo. Si no configuro ValidatesOnTargetUpdated, el TextBox correspondiente valida cuando cambio la propiedad de texto (vinculada) y veo que aparece el borde rojo (predeterminado) y una información sobre herramientas ( {Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors).CurrentItem.ErrorContent}
) que muestra el mensaje de error.
Quiero que los controles se validen en el enlace en lugar de hacerlo en propiedad, así que configuré ValidatesOnTargetUpdated en true y puedo ver la activación de validationRule al depurar.
Mi problema es que ValidationTemplate (predeterminado) se ignora cuando ValidatesOnTargetUpdated="True"
pesar de la activación de ValidationRule.
Puedo ver la información sobre herramientas: aparece con el mensaje de error correcto, pero el borde no se muestra en rojo; esto parece ser ignorado.
¿Alguna idea de por qué esto estaría sucediendo?