以编程方式更改WPF TextBox中的验证规则

Miz*_*zor 9 wpf binding

我有一个像这样定义的文本输入区域:

    <TextBox>
        <TextBox.Text>
            <Binding Path="MyProperty">
                <Binding.ValidationRules>
                    <valid:MyValidator/>
                </Binding.ValidationRules>
            </Binding>
        </TextBox.Text>
    </TextBox>
Run Code Online (Sandbox Code Playgroud)

我的问题是,根据另一个设置,这里应插入的内容会有所不同.因此,输入数据的验证行为应该改变.

如何在后面的代码中更改某个文本框的活动验证规则?

ito*_*son 23

使用BindingOperations.GetBinding()获取TextBox.Text的Binding对象.然后根据需要操作绑定的ValidationRules集合.

Binding binding = BindingOperations.GetBinding(myTextBox, TextBox.TextProperty);
binding.ValidationRules.Clear();
binding.ValidationRules.Add(myCrazyValidationRule);
Run Code Online (Sandbox Code Playgroud)

  • @itowlson你有没有想过按照MVVM模式在XAML中做这个? (2认同)