我想驗證DataGrid中的單元格。這是我第一次驗證的方法。由於我是新手,因此我在驗證中遇到了一些問題。如何驗證DataGrid中的空單元或空單元格
我創建了一個名爲StringIsNullOrEmptyValidationRule.cs的類。此類檢查,如果字符串爲null或「」
這裏是StringIsNullOrEmptyValidationRule.cs的代碼:
class StringIsNullOrEmptyValidationRule : ValidationRule
{
private string _errorMessage = "";
public string ErrorMessage
{
get
{
return _errorMessage;
}
set
{
_errorMessage = value;
}
}
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
ValidationResult result = new ValidationResult(true, null);
if (value == null || ((string)value).Trim() == "")
{
result = new ValidationResult(false, this.ErrorMessage);
}
return result;
}
}
現在我有MainWindow.xaml一個DataGrid被綁定到一個ObservableCollection叫人。這是我的DataGrid:
<DataGrid x:Name="maindg" ItemsSource="{Binding People}" AutoGenerateColumns="False" SelectionMode="Single" SelectionUnit="CellOrRowHeader">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last Name">
<DataGridTextColumn.Binding>
<Binding Path="LastName">
<Binding.ValidationRules>
<local:StringIsNullOrEmptyValidationRule ErrorMessage="LastName is required" />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Header="City" Binding="{Binding City}" />
</DataGrid.Columns>
</DataGrid>
問題:
我一直在StringIsNullOrEmptyValidationRule的validate方法的第一行設置一個斷點。 當我在LastName Column下的單元格中沒有輸入任何數據時,嘗試遠離單元格時,它不會觸及斷點,這意味着驗證甚至不檢查。
如果我將某些數據輸入到lastName列下的單元格,然後嘗試移開單元格,它會嘗試驗證單元格。所以它達到了斷點。
所以,我的問題是我如何驗證NullOrEmpty單元?
如果有人認爲我使用過時的驗證方法,那麼請提出新的方法。 – Vishal