我有一个 MVVM 应用程序,用户可以在其中注册一个人。要注册一个人,用户必须在提供的三个文本框中提供至少 2 个有效的电话号码。
“有效”电话号码至少包含 10 个号码。
我已经实现了 IDataErrorInfo,并且每当绑定的属性发生更改时,我的文本框都会进行验证。
我的问题与如何实际验证内容有关?
这构成了有效的输入:
Textbox 1 : 0123456789
Textbox 2 : 0123456789
Textbox 3 : {null}
原样
Textbox 1 : 0123456789
Textbox 2 : 0123456789
Textbox 3 : 0123456789
但是,这些无效:
Textbox 1 : 0123456789
Textbox 2 : 012345678
Textbox 3 : {null}
和
Textbox 1 : 0123456789
Textbox 2 : {null}
Textbox 3 : {null}
所以这实际上更像是一个编码问题而不是验证问题。
我到目前为止:
private string ValidateTelephoneNumbers()
{
var hasNumber1 = BoundProperty1 != string.Empty;
var hasNumber2 = BoundProperty2 != string.Empty;
var hasNumber3 = BoundProperty3 != string.Empty;
if (hasNumber1 && (hasNumber2 || hasNumber3) || (hasNumber2 && hasNumber3))
{
return null;
}
else
{
return "Specify at least 2 valid telephone numbers."
}
}
它涵盖了要求的“指定至少两个”部分......但是有没有一种更优雅的方法来检查每个提供的数字的长度,而不是检查每个数字?