在 Furion 中,表单验证通常是通过数据注解(Data Annotations)和模型验证(Model Validation)来实现的。以下是如何在 Winform 应用程序中使用 Furion 进行表单验证的步骤:
dotnet add package Furion
dotnet add package Furion.Extras
public class UserViewModel
{
[Required(ErrorMessage = "用户名不能为空")]
[StringLength(10, ErrorMessage = "用户名长度不能超过10个字符")]
public string Username { get; set; }
[Required(ErrorMessage = "密码不能为空")]
[StringLength(20, ErrorMessage = "密码长度不能超过20个字符")]
public string Password { get; set; }
[Required(ErrorMessage = "邮箱不能为空")]
[EmailAddress(ErrorMessage = "邮箱格式不正确")]
public string Email { get; set; }
}
public partial class MainForm : Form
{
private readonly UserViewModel _userViewModel = new();
public MainForm()
{
InitializeComponent();
// 绑定视图模型到控件
usernameTextBox.DataBindings.Add(nameof(usernameTextBox.Text), _userViewModel, nameof(_userViewModel.Username));
passwordTextBox.DataBindings.Add(nameof(passwordTextBox.Text), _userViewModel, nameof(_userViewModel.Password));
emailTextBox.DataBindings.Add(nameof(emailTextBox.Text), _userViewModel, nameof(_userViewModel.Email));
}
}
App.Validate
方法对视图模型进行验证。如果验证失败,将错误信息显示给用户。例如:private void submitButton_Click(object sender, EventArgs e)
{
// 验证视图模型
var validationResults = App.Validate(_userViewModel);
if (validationResults.IsValid)
{
// 验证成功,处理表单数据
MessageBox.Show("表单提交成功!");
}
else
{
// 验证失败,显示错误信息
var errorMessage = string.Join(Environment.NewLine, validationResults.Errors.Select(e => e.ErrorMessage));
MessageBox.Show(errorMessage, "表单验证失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
现在,当用户提交表单时,Furion 将根据视图模型中定义的数据注解规则对表单数据进行验证。如果验证失败,将显示相应的错误信息。