質問

私は、WPFを使用していると私は一連の制御にバインドされたエンティティを持っています。次のようにエンティティは、2つのクラスレベルのバリデータで飾られます:

[ExampleValidator1, ExampleValidator2]
public class Entity

アンエンティティは、常にコンボボックスから選択に依存して、表示されていないすべてが一連のフィールドがあります。 エンティティの「タイプ」は、バリがtrueを返した特定のバリデータと一致していないと明らかに正しいバリデータは、実際のフィールドを検証する場合は次のようにバリデータは、これらの選択のそれぞれのために存在する:

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;
        }

と次のようにXAMLは、次のとおりです。

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

もちろん、私は、検証要件をユーザーに知らせる素敵なきれいな赤いボックスとツールヒントを得ることができます。

私の問題は、コンボボックス内の選択が変更された場合、赤色の強調表示が持続する(制御が隠されたときに小さな赤い正方形になる)ということです。 誰かが私に正しい方法を指示でしてください!

役に立ちましたか?

解決

理想的なソリューションが、その実行可能な、コンボボックスが変更されるときOnPropertyChangedを焼成することによって解決しない。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top