绑定对象属性的本机 XAML 验证

问题描述 投票:0回答:1

我正在使用 MVVM 设计模式在 C# WPF 中开发一个项目,由于旧的强制第三方库,该项目仅限于 .NET 4.8。

我最近一直在用户输入验证方面苦苦挣扎,如果我创建一个自定义对象,然后将该对象的属性绑定到视图中的文本框文本属性,如下所示:

class TestObject 
{
    public double DoubleValue { get; set; }
}
<TextBox Text="{Binding ViewTestObject.DoubleValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

执行此操作时,WPF 会识别属性的类型(例如 double),如果用户输入错误(例如 2;5),则根据

UpdateSourceTrigger
参数值阻止输入或在文本框上显示红色边框,这就是我想要的。

由于此行为似乎是本机编码的,因此我想进一步根据文本框验证状态直接在 xaml 中更改按钮的

IsEnabled
属性,但我无法使其工作。

您可以在此 Github 存储库中找到有关此案例的测试项目:

https://github.com/RoosterBlueWing/TestValidationWPF

那么,我是做错了什么还是根本不可能?

c# wpf xaml mvvm data-binding
1个回答
0
投票

您可以尝试添加ValidationRules,例如:

<TextBox Text="{Binding ViewTestObject.DoubleValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,ValidationRules ={Your validation type}"/>
© www.soinside.com 2019 - 2024. All rights reserved.