c# - 单个绑定(bind)的多个验证规则

标签 c# wpf validation

能否在单个绑定(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/

相关文章:

c# WPF App.Current 在自定义对话框窗口关闭后变为空

c# - xaml ObjectDataProvider.MethodParameters 引用

c# - 删除 WPF 中事件选项卡上标题周围的虚线轮廓?

android - 在 EditText 中仅允许基于正则表达式的选定字符

html - Google 隐私页面 html 无效

c# - 在 Visual Studio Mac 中找不到命名空间 Microsoft.Azure

c# - 异步编程和 Azure 函数

c# - DataAccess 项目中类的命名约定是什么?

Java 303/349 开始日期早于结束日期验证

c# - html 表单发布到 web api 2 Controller