能否在单个绑定(bind)上使用多个验证规则?
我正在尝试仅使用 XAML 验证 TextBox
,而 BindingGroup
似乎不起作用。
这是我的 XAML:
<TextBox>
<TextBox.Text>
<Binding Path="Title" UpdateSourceTrigger="PropertyChanged"/>
</TextBox.Text>
<TextBox.BindingGroup>
<BindingGroup NotifyOnValidationError="True">
<BindingGroup.ValidationRules>
<rule:CantBeEmpty ValidatesOnTargetUpdated="True" />
<rule:CantBeMoreThanXCharacters
CharacterLimit="30"
ValidatesOnTargetUpdated="True" />
<BindingGroup.ValidationRules/>
</BindingGroup>
</TextBox.BindingGroup>
</TextBox>
rule
命名空间引用 xmlns:rule="clr-namespace:MyApp.Views.ValidationRules"
这些规则遵循标准语法:
public class CantBeEmpty : ValidationRule {
public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
[...]
}
}
最佳答案
您是否尝试将验证规则添加到绑定(bind)中?
<TextBox>
<TextBox.Text>
<Binding Path="Title" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<rule:CantBeEmpty ValidatesOnTargetUpdated="True" />
<rule:CantBeMoreThanXCharacters CharacterLimit="30" ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
关于c# - 单个绑定(bind)的多个验证规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45835854/