对业务对象中的Collection属性的WPF数据验证

时间:2011-02-17 16:19:36

标签: c# wpf validation

我有一个业务对象,其属性定义如下:

    /// <summary>
    /// Gets the Interest Payments dates Collection.
    /// </summary>
    public BindingList<DateTime> InterestPaymentDatesCollection
    {
        get 
        { 
            return this._interestPaymentDatesCollection; 
        }
    }

这是在WPF应用程序中使用的(我是一个ASP.Net开发人员,已经交付了这个项目) - 基本上我需要确保_interestPaymentDatesCollection中设置了一个值 - 否则我需要通知用户,该字段是必需的,等。作为一个WPF新手,我不熟悉如何做到这一点。我尝试使用IDataErrorInfo阅读示例,但无法拼凑如何在集合属性上执行此操作。

建议赞赏!

1 个答案:

答案 0 :(得分:1)

包含Collection的类将实现IDataErrorInfo,您将覆盖this[string.columnName]属性并显示验证错误

有很多方法可以实现验证,但这是一个简单的例子:

public class TestModel : IDataErrorInfo
{
    public List<DateTime> MyCollection {get; set;}

    public string this[string columnName]
    {
        get { return this.GetValidationError(propertyName); }
    }

    public string GetValidationError(string propertyName)
    {
        switch (propertyName)
        {
            case "MyCollection":
                // Do validation here and return a string if an error is found
                if (MyCollection == null) return "Collection not Initialized";
        }
        return null;
    }
}