现在我有一个窗口来操作我的一个数据库表中的记录,如下所示:
我通过从DataGrid
标签拖动来获得此Data Source
控件。该数据源实际上是我在VS 2015中创建的DataSet
项,这意味着一些强类型数据库操作类是在.xsd文件中自动生成的。所以,你看,基本上,这个Datagrid
背后的一切都是自动生成的,包括xaml和C#代码。
默认情况下,当您插入新记录时,将根据其类型检查您在单元格中键入的数据,如果您输入的内容不符合预期,则会在第一个单元格中显示红色感叹号。例如,我的表中的IRD列是int类型,如果键入除digit之外的某些符号,则会得到该红色感叹号。
我现在要做的是将用户类型限制在8到9位数,例如,如果用户只输入3位数字:346,他/她会看到红色感叹号,并且无法继续插入记录。
答案 0 :(得分:1)
我对DataTable
使用ItemsSource
作为DataGrid
我是对的吗?如果是,那么让我展示一下如何验证你的细胞:
this.YourDataTable.ColumnChanging += YourDataTableColumnChangingStuff;
private void YourDataTableColumnChangingStuff(object sender, DataColumnChangeEventArgs e)
{
private void EmployeeDataTable_ColumnChanging(object sender, DataColumnChangeEventArgs e)
{
//if you want to leave previous value
if ("incorrect value" != e.ProposedValue.ToString())
e.ProposedValue = e.Row.ItemArray[e.Column.Ordinal];
else
{
//if you want to set new value
e.ProposedValue = "new value";
}
}
}