将ValidationRules添加到单个xaml行或简写ValidationRules中

时间:2011-10-24 09:50:45

标签: wpf binding shorthand validationrules

我正在使用一个PasswordBox,它公开了一个依赖属性,以便我可以绑定它。问题是,通过像这样使用它,我无法将Binding.ValidationRules简写为这种语法:

<PasswordBox services:RPLPasswordBoxBinder.BindPassword="True" 
             services:RPLPasswordBoxBinder.BoundPassword="{Binding Path=LoginUser.Parola, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> 
</PasswordBox>

我将ValidationRules设置为这样的文本框:

<TextBox.Text>
   <Binding Path="LoginUser.Parola" UpdateSourceTrigger="PropertyChanged">
       <Binding.ValidationRules>
           <some validation rule/>
        </Binding.ValidationRules>
   </Binding>
</TextBox.Text>

有没有办法在单个xaml行中为我的PasswordBox指定ValidationRules集合?或者也许还有另一个聪明的解决方案来验证用户输入我的密码框?

一些澄清: 我正在使用MVVM,我不想使用代码。

我想只添加一个ValidationRule。也许短路Binding.ValidationRules的问题是这个属性是一个集合。在我的情况下,一个验证规则就足够了。

stackoverflow here上有类似的问题。我问了一个类似的问题,因为我的代表不允许我在那里发表评论而且我的问题不同,因为我不只是想提高可读性,而是实际验证我的PasswordBox。

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

我建议您将数据模型类基于IDataErrorInfo,然后在那里执行验证,而不是在后面的代码中执行。

有很多例子,但here's one for starters和另一个here