Todavía estoy luchando con la validación en WPF.Encuadernación de validación en la primera carga
Tengo una regla de validación personalizada que requiere que el texto aparezca en un cuadro de texto, es decir, impone una restricción de campo obligatorio.
<TextBox local:Masking.Mask="^[a-zA-Z0-9]*$" x:Name="CameraIdCodeTextBox" Grid.Row="1" Grid.Column="1">
<Binding Path="CameraIdCode" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True" ValidatesOnExceptions="True">
<Binding.ValidationRules>
<localValidation:RequiredFieldRule />
</Binding.ValidationRules>
</Binding>
</TextBox>
El problema es que cuando las primeras cargas de la ventana, no hay texto en el cuadro de texto (como era de esperar). Pero la propiedad Text está vinculada a una propiedad en ViewModel y, como tal, la Regla de validación está activa, lo que indica que hay un problema con la Ventana, antes de que el usuario haya tenido la oportunidad de infringir una regla comercial.
¿Es esto un problema que ha sido resuelto antes? No pude haber sido el primero en experimentar esto. Estoy seguro de que es una trampa para jugadores jóvenes.
Puede intentar ... UpdateSourceTrigger = "LostFocus" –
Puede crear un grupo de validación, y solo habilitarlo, cuando el usuario hace un cambio en algún campo por primera vez. –
@AngelWPF Lo he intentado. Todavía valida en el enlace inicial cuando se carga la ventana. – onefootswill