WPF中的多个验证规则和验证模板

时间:2010-06-15 23:03:57

标签: wpf xaml templates validationrules

是否有人有处理这些验证规则的多个验证规则和模板的策略。

示例:

我想要两个验证规则(必需和数据)

我想要......

可以更改一个模板,具体取决于触发的规则 要么 两个模板,根据触发的规则显示

2 个答案:

答案 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。