簡體   English   中英

雙重NHibernate類級別驗證器問題

[英]Dual NHibernate Class Level Validators Issue

我正在使用WPF,並且有一個綁定到一系列控件的Entity。 實體由兩個類級別的驗證器裝飾,如下所示:

[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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM