是否有人有处理这些验证规则的多个验证规则和模板的策略。
示例:
我想要两个验证规则(必需和数据)
我想要......
可以更改一个模板,具体取决于触发的规则 要么 两个模板,根据触发的规则显示
答案 0 :(得分:2)
好的,所以我找到了一种有效的方法,我希望得到任何可能对此感兴趣的人的反馈。
有效性规则:
我的验证规则被更改为发送回具有IsRequired&的“ErrorObject”。消息属性
public class ErrorObject
{
public bool IsRequired { get; set; }
public string Message { get; set; }
}
....
return new ValidationResult(false, new ErrorObject() { IsRequired = true, Message = "Is Required" });
模板:
在验证模板中,我现在可以访问这些属性并相应地更改视觉效果。 (在这个例子中,我显示了*为必填字段)
<Border
BorderBrush="Red"
CornerRadius="3"
BorderThickness="1">
<AdornedElementPlaceholder
x:Name="errorAdorner" />
</Border>
<TextBlock
Text="*"
Foreground="Red"
Visibility="{Binding ElementName=errorAdorner, Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent.IsRequired, Converter={StaticResource BooleanToVisibilityConverter}}" />
所以这是一个简单的例子,但你可以想象这会变得非常强大。感谢MS让发回一个对象!!!
答案 1 :(得分:0)
我可能错了,不是百分百肯定,但我认为如果你想要显示不同的模板,你必须可编程地应用模板。
这种做法与此类似吗? Programmatically change validation rule in WPF TextBox
HTH。