簡體   English   中英

WPF IDataErrorInfo和NHibernate驗證-如何觸發驗證?

[英]WPF IDataErrorInfo and NHibernate Validation - how to trigger a Validate?

我最近將NHibernate驗證插入到我的應用程序中,因此已經使用NHibernate屬性修飾了域對象的屬性...

    [NotEmpty, Length(Min = 1, Max = 40)]
    public string Description { get; set; }

我還在我的域對象上實現了IDataErrorInfo ...

    public string this[string columnName]
    {
        get
        {
            var result = new ValidatorEngine().Validate(this);
            _invalidValues = result.Where(x => x.PropertyName == columnName).Select(x => x.Message);
            return _invalidValues.FirstOrDefault();
        }

    }

    public string Error
    {
        get
        {
            return string.Empty;
        }
    }

XAML看起來像這樣

 <TextBox Grid.Row="0" Grid.Column="3" Text="{Binding Path=Entity.Description, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" IsEnabled="{Binding IsEditable}" ></TextBox>

我的問題是,當我創建我的Domain對象的新實例時,由於沒有有效地更改屬性(如示例中的Description),因此沒有調用validate。

我打算編寫一種使用反射並將屬性設置為已經等於以觸發驗證的方法,但這似乎是一種特別有效的方法!

有人可以讓我回到正軌嗎?

干杯,

安迪

這是因為屬性為Null,因此我需要另一個NHibernate驗證修飾器來考慮該問題(NotNullNotEmpty),而不是我曾經使用的NotEmpty。

 [NotNullNotEmpty, Length(Min = 1, Max = 40)]
 public string Description { get; set; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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