繁体   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