我想在验证业务对象时显示警告和错误,并将这些显示给用户.
例如我有一个实现如下接口的业务对象类:
interface IOrderItem : IDataErrorInfo { int ProductId { get; set; } string ProductName { get; set; } decimal Price { get; set; } IDictionary<string,string> Warnings { get; } }
这绑定到UI,如下所示:
<TextBox Text="{Binding Price,ValidatesOnDataErrors=True}/>
一个错误是:
>价格< 0 = “价格不能低于0”
当我使用IDataErrorInfo接口将错误消息放在业务对象上时,这可以很好地绘制文本框周围的红色边框.
我想做的也是指定警告,例如:
>价格< 15 ||价格> 30 => “价格偏离宽容”
这些警告会在文本框周围放置橙色边框,并通知用户可能有问题,但不能阻止它们继续进行.
警告存储在字符串字典映射PropertyName =>警告消息与IDataErrorInfo类似.
问题:最好的方法是什么?
>显然,我需要一个包含文本框的橙色边框的样式,但是如何触发它?
>我不希望每个文本框都有一个独立的样式,所以风格如何访问底层的绑定以获取应该在“字典”中查找的属性名称.