我的ViewModel.cs
中有一个简单的List<IntObject>
。类IntObject
实现INotifyPropertyChanged
和类型为int的属性Value
。该列表用作DataGrid
的ItemsSource
。
我的问题:当我在单元格中键入字符时,会显示一个红色边框,并且我在输出窗口中得到一个异常。这对我来说很有道理。我的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
值之外的任何其他值。