【发布时间】:2022-01-17 16:50:39
【问题描述】:
我从一个解决方案中获得了这段代码,我在谷歌上搜索了一个关于意大利面条if..else 语句的问题。有没有办法完全缩短这个时间,或者有一种不同的方法来使代码至少更易于维护。
switch (registerControl.Valid_FullName(student.Student_Name) == true)
{
case true:
lblFullNameError.Visibility = Visibility.Hidden;
break;
case false:
lblFullNameError.Visibility = Visibility.Visible;
break;
}
switch (registerControl.Valid_Email(student.Student_Email) == true)
{
case true:
lblEmailError.Visibility = Visibility.Hidden;
break;
case false:
lblEmailError.Visibility = Visibility.Visible;
break;
}
switch (registerControl.Valid_Course(student.Student_Course) == true)
{
case true:
lblCourseError.Visibility = Visibility.Hidden;
break;
case false:
lblCourseError.Visibility = Visibility.Visible;
break;
}
switch (registerControl.Valid_Password(student.Student_Password) == true)
{
case true:
lblPasswordError.Visibility = Visibility.Hidden;
break;
case false:
lblPasswordError.Visibility = Visibility.Visible;
break;
}
switch (registerControl.Confirm_Password(student.Student_Password, student.student_ConfirmPassword) == true)
{
case true:
lblPasswordMatch.Visibility = Visibility.Hidden;
break;
case false:
lblPasswordMatch.Visibility = Visibility.Visible;
break;
}
【问题讨论】:
-
lblFullNameError.Visibility = registerControl.Valid_FullName(student.Student_Name) ? Visibility.Hidden : Visibility.Visible?使用基于真/假输入返回 Visibility.Visible 或 Visibility.Hidden 的函数。在 Xaml 中使用带有 ValueConverters 的 Binding 来获取可见值,.... -
最好的方法是将值设置为视图模型中的属性,并通过 BooleanToVisibilityConverter 将它们绑定到 xaml 中的可见性属性。这将更易于维护。