我想验证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