我正在使用 Xceed 的wpf
属性网格控件来显示我的一些配置属性。我正在通过{ SelectedObject="{Binding Entity.Configuration} }
whereConfiguration
对象包含属性列表进行操作,并且该对象是在运行时使用 xml 文件创建的。
我需要对这些属性(例如最大值/最小值)进行验证。但是我没有找到任何进行验证的方法。如果有的话,谁能告诉我?
我正在使用 Xceed 的wpf
属性网格控件来显示我的一些配置属性。我正在通过{ SelectedObject="{Binding Entity.Configuration} }
whereConfiguration
对象包含属性列表进行操作,并且该对象是在运行时使用 xml 文件创建的。
我需要对这些属性(例如最大值/最小值)进行验证。但是我没有找到任何进行验证的方法。如果有的话,谁能告诉我?
将以下内容添加到您的课程中:
using System.ComponentModel.DataAnnotations;
public class YourClass : DataErrorInfoImpl
{
[Range(0, 100 , ErrorMessage = "The number must be from [0,100].")]
Double SomeNumberToValidate {get;set;}
}
public class DataErrorInfoImpl : IDataErrorInfo
{
string IDataErrorInfo.Error { get { return string.Empty; } }
string IDataErrorInfo.this[string columnName]
{
get
{
var pi = GetType().GetProperty(columnName);
var value = pi.GetValue(this, null);
var context = new ValidationContext(this, null, null) { MemberName = columnName };
var validationResults = new List<ValidationResult>();
if (!Validator.TryValidateProperty(value, context, validationResults))
{
var sb = new StringBuilder();
foreach (var vr in validationResults)
{
sb.AppendLine(vr.ErrorMessage);
}
return sb.ToString().Trim();
}
return null;
}
}
}
披露:我从 propertytools 属性网格中提取了一些代码。它适用于 Xceed 和 PropertyTools 库。