4

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

例子:

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

我也想要...

一个可以更改的模板是根据触发的规则进行显示或根据触发的规则显示两个模板

4

2 回答 2

2

我已经找到了一种可行的方法,我希望得到任何可能对此感兴趣的人的反馈。

验证规则:

我的验证规则已更改为发回具有 IsRequired 和 Message 属性的“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}}" />

所以这是一个简单的例子,但你可以想象它会变得非常强大。感谢微软让我们发回一个对象!

于 2010-06-16T18:47:45.510 回答
0

我可能错了,不是 100% 肯定,但我认为如果你想显示不同的模板,你必须以可编程的方式应用模板。

这种方法与此类似吗?以编程方式更改 WPF TextBox 中的验证规则

于 2010-06-15T23:12:46.720 回答