在C#中,使用BindingNavigator
進行數據校驗時,通常需要結合BindingSource
組件。以下是一些關于如何進行數據校驗的步驟:
BindingSource
組件上。BindingNavigator
的AutoValidate
屬性設置為true
。這將在輸入字段中的值發生更改時自動觸發驗證。ValidationRule
類創建自定義驗證規則,或者使用DataAnnotations
命名空間中的屬性進行驗證。BindingNavigator
的Validating
事件,以便在驗證失敗時執行適當的操作。例如,你可以顯示錯誤消息或阻止導航。下面是一個簡單的示例,演示了如何使用BindingNavigator
和DataAnnotations
進行數據校驗:
// 創建一個包含數據的DataTable
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Age", typeof(int));
dataTable.Rows.Add("Alice", 30);
dataTable.Rows.Add("Bob", 25);
// 將DataTable綁定到BindingSource
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = dataTable;
// 將BindingSource綁定到DataGridView
DataGridView dataGridView = new DataGridView();
dataGridView.DataSource = bindingSource;
// 為Name列添加必填驗證規則
dataGridView.Columns["Name"].DataAnnotations.Add("Required", "Name is required.");
// 為Age列添加范圍驗證規則
dataGridView.Columns["Age"].DataAnnotations.Add("Range", "Age must be between 18 and 60.");
// 創建一個BindingNavigator并添加到窗體上
BindingNavigator bindingNavigator = new BindingNavigator();
bindingNavigator.DataSource = bindingSource;
this.Controls.Add(bindingNavigator);
// 處理Validating事件以顯示錯誤消息
bindingNavigator.Validating += (sender, e) =>
{
if (!bindingSource.Current.Row.IsValid)
{
MessageBox.Show("Validation failed. Please fix the errors before proceeding.");
e.Cancel = true; // 阻止導航
}
};
在這個示例中,我們創建了一個包含Name
和Age
字段的DataTable
,并將其綁定到BindingSource
和DataGridView
。然后,我們為Name
列添加了必填驗證規則,為Age
列添加了范圍驗證規則。最后,我們處理了Validating
事件,以便在驗證失敗時顯示錯誤消息并阻止導航。