Pregunta

Estoy usando WPF y tengo una Entidad unido a una serie de controles. La entidad está decorado con dos validadores nivel de clase de la siguiente manera:

[ExampleValidator1, ExampleValidator2]
public class Entity

Una entidad tiene una serie de campos de los cuales no todos se muestran siempre, depende de la selección del cuadro combinado. Existe un validador para cada una de estas selecciones, si el "tipo" de la entidad no se corresponde con un validador validador particular que devuelve verdadero y, obviamente, el validador correcta validará los campos reales de la siguiente manera:

public bool IsValid(object value, IConstraintValidatorContext constraintValidatorContext)
    {

        constraintValidatorContext.DisableDefaultError();
        var allPropertiesValid = true;
        var entity= (Entity)value;

        if (supplier.ParticularEntityType)
        {
            return true;
        }



        if (String.IsNullOrEmpty(entity.Name) || entity.Name.Length > 50)
        {
            constraintValidatorContext.AddInvalid<Entity, string>("must be 50 or shorter and not empty", x => x.Name);
            allPropertiesValid = false;
        }

y el XAML es como sigue:

                <TextBox Grid.Row="0" Grid.Column="3">
                    <TextBox.Text>
                        <Binding Path="Entity.Name" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True">
                        </Binding>
                    </TextBox.Text>
                </TextBox>

Obviamente consigo los buenos consejos bastante rojas y caja de herramientas informando a los usuarios de los requisitos de validación.

Mi problema es que cuando se cambia la selección en el cuadro combinado, el resaltado de color rojo persiste (se convierte en un pequeño cuadrado rojo cuando se oculta un control). Podría alguien dirigir la manera correcta por favor!

¿Fue útil?

Solución

Resuelto por el disparo de un OnPropertyChanged cuando se altera el cuadro combinado, no es una solución ideal, pero su viable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top