[英]Xceed WPF Propertygrid: Validation on Property grid fields
我正在使用Xceed的wpf
屬性網格控件來顯示一些配置屬性。 我正在通過{ SelectedObject="{Binding Entity.Configuration} }
,其中Configuration
對象包含屬性列表,並且此對象是在運行時使用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庫一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.