在 Furion 中,表單驗(yàn)證通常是通過(guò)數(shù)據(jù)注解(Data Annotations)和模型驗(yàn)證(Model Validation)來(lái)實(shí)現(xiàn)的。以下是如何在 Winform 應(yīng)用程序中使用 Furion 進(jìn)行表單驗(yàn)證的步驟:
dotnet add package Furion
dotnet add package Furion.Extras
public class UserViewModel
{
[Required(ErrorMessage = "用戶名不能為空")]
[StringLength(10, ErrorMessage = "用戶名長(zhǎng)度不能超過(guò)10個(gè)字符")]
public string Username { get; set; }
[Required(ErrorMessage = "密碼不能為空")]
[StringLength(20, ErrorMessage = "密碼長(zhǎng)度不能超過(guò)20個(gè)字符")]
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
方法對(duì)視圖模型進(jìn)行驗(yàn)證。如果驗(yàn)證失敗,將錯(cuò)誤信息顯示給用戶。例如:private void submitButton_Click(object sender, EventArgs e)
{
// 驗(yàn)證視圖模型
var validationResults = App.Validate(_userViewModel);
if (validationResults.IsValid)
{
// 驗(yàn)證成功,處理表單數(shù)據(jù)
MessageBox.Show("表單提交成功!");
}
else
{
// 驗(yàn)證失敗,顯示錯(cuò)誤信息
var errorMessage = string.Join(Environment.NewLine, validationResults.Errors.Select(e => e.ErrorMessage));
MessageBox.Show(errorMessage, "表單驗(yàn)證失敗", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
現(xiàn)在,當(dāng)用戶提交表單時(shí),F(xiàn)urion 將根據(jù)視圖模型中定義的數(shù)據(jù)注解規(guī)則對(duì)表單數(shù)據(jù)進(jìn)行驗(yàn)證。如果驗(yàn)證失敗,將顯示相應(yīng)的錯(cuò)誤信息。