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

时间:2018-12-03 09:00:18

标签: c# wpf validation datagrid

我的ViewModel.cs中有一个简单的IntObject。类INotifyPropertyChanged实现Value和类型为int的属性ItemsSource。 该列表用作DataGrid中的 import glob import pandas as pd import numpy as np import csv import os excel_files = glob.glob('../../Versuch/Versuche/RohBeispiel/*.xlsm') directory = '/Beispiel' for files in excel_files: data = pd.read_excel(files) # getting the list of rows and columns you need list_of_dfs = pd.DataFrame(data.values[0:600:,12:26], columns=data.columns[12:26]).drop(['Sauberkeit', 'Temparatur'], axis=1) # converting pandas dataframe columns to numeric: string into float cols = ['KonzA', 'KonzB', 'KonzC', 'TempA', 'TempB', 'TempC', 'Modul1', 'Modul2', 'Modul3', 'Modul4', 'Modul5', 'Modul6'] list_of_dfs[cols] = list_of_dfs[cols].apply(pd.to_numeric, errors='coerce', axis=1) # Filling down from a column through missing data for fec in list_of_dfs[cols]: list_of_dfs[fec].fillna(method='ffill', inplace=True) csvfilename = files.split('/')[-1].split('.')[0] + '.csv' newtempfile = os.path.join(directory,csvfilename) print(newtempfile) print(list_of_dfs.head(2))

我的问题: 当我在单元格中键入字符时,会显示红色边框,并且在输出窗口中出现异常。这对我来说很有意义。 我的DataGridColumns是自动生成的,因此无法手动生成。

是否有可能捕获datagrid以类似mvvm的方式抛出的所有异常?

1 个答案:

答案 0 :(得分:0)

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

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

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