当绑定属性的类型为integer时,如何验证DataGridCell的内容



我的ViewModel.cs中有一个简单的List<IntObject>。类IntObject实现INotifyPropertyChanged和类型为int的属性Value。该列表用作DataGridItemsSource

我的问题:当我在单元格中键入字符时,会显示一个红色边框,并且我在输出窗口中得到一个异常。这对我来说很有道理。我的DataGridColumns是自动生成的,不可能手动生成。

有可能以类似mvvm的方式捕获数据网格抛出的所有异常吗?

验证视图或控件是否将其int属性之一设置为有效的int值不是视图模型的责任。此验证应在视图或控件中执行。您可以使用ValidationRule或/和RowValidationErrorTemplate自定义行验证反馈。有关此方面的详细信息,请参阅以下MSDN页面。

如何:使用DataGrid控件执行验证:https://learn.microsoft.com/en-us/dotnet/framework/wpf/controls/how-to-implement-validation-with-the-datagrid-control

如果您正在自动生成列,则可以处理AutoGeneratingColumn来自定义生成的列。但是不能将int源属性设置为除int值之外的任何其他值。

最新更新