gpt4 book ai didi

c# - 使用 Regex 的 DataValidation 不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:07 27 4
gpt4 key购买 nike

所以我有一个 MaskedTextInput 框,如下所示:

<telerik:RadMaskedTextInput Margin="2" BorderBrush="LightGray"
IsClearButtonVisible="False"
Mask="(###) ###-####"
UpdateValueEvent="PropertyChanged"
TextMode="PlainText"
Value="{Binding Path=PhoneNumber,
Mode=TwoWay,
NotifyOnValidationError=True,
ValidatesOnExceptions=True,
UpdateSourceTrigger=PropertyChanged}" />

它通过带有以下代码隐藏的 ViewModel 绑定(bind):

//Phone Number
[Required(AllowEmptyStrings = false, ErrorMessage = @"A phone number is required.")]
[RegularExpression(@"^\d{10}$", ErrorMessage = @"Invalid phone number.")]
public string PhoneNumber
{
get { return _phoneNumber; }
set
{
if (_phoneNumber!= value)
{
Validator.ValidateProperty(value,
new ValidationContext(this, null, null)
{
MemberName = "PhoneNumber"
});
_phoneNumber = value;
OnPropertyChanged("PhoneNumber");
}
}
}

我正在尝试做的是,当用户出现 10 位数字以外的任何数字时抛出异常,导致边框变为红色。

它适用于电子邮件地址等其他字段,但由于某些原因它不适用于设置了掩码的电话号码字段。

最佳答案

根据 documentation从 telerik 你需要在你的 set 语句中抛出一个异常。

set
{
if (_phoneNumber!= value)
{
// Do the validation and throw an validation exception.
if(/*validation statements*/)
{
throw new ValidationException("........Error message..........");
}
_phoneNumber = value;
OnPropertyChanged("PhoneNumber");
}
}

关于c# - 使用 Regex 的 DataValidation 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30537288/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com