绑定到 DataGridView 的 DataTable 中的事件值已更改
Event Value changed in DataTable bound to DataGridView
我在绑定到 DataGridView 的数据库中的 DataSet 中有 DataTable。如果数据发生变化,我想显示状态。所以我使用 DataGridView 的 CellValueChanged 事件作为触发器。在事件例程中,如果真的有变化,我会使用 DataSet.HasChanges 检查 DataSet 中的变化。但那还为时过早,我认为 DataGridView 当时没有更新 DataTable。从第 2 个更改开始它起作用。是否有另一个事件在更新数据后被触发 table?
使用 DataTable.ColumnChanged Event 进行更改,按 TAB 或 ENTER 以获得原始值和建议值。在下面的例子中我们首先订阅DataTable的ColumnChanged事件
someDataTable.ColumnChanged += ColumnChanged;
然后,在这种情况下显示值 Visual Studio 输出 window
public void ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
Console.WriteLine($" Column name {e.Column.ColumnName}");
Console.WriteLine($" Original value [{e.Row[e.Column.ColumnName, DataRowVersion.Original]}]");
Console.WriteLine($" Propose value [{e.ProposedValue}]");
}
或有选择性
public void ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
if (
e.Row.RowState == DataRowState.Deleted ||
e.Row.RowState == DataRowState.Detached ||
e.Row.RowState == DataRowState.Added)
return;
Console.WriteLine($" Column name {e.Column.ColumnName}");
Console.WriteLine($" Original value [{e.Row[e.Column.ColumnName, DataRowVersion.Original]}]");
Console.WriteLine($" Propose value [{e.ProposedValue}]");
}
我在绑定到 DataGridView 的数据库中的 DataSet 中有 DataTable。如果数据发生变化,我想显示状态。所以我使用 DataGridView 的 CellValueChanged 事件作为触发器。在事件例程中,如果真的有变化,我会使用 DataSet.HasChanges 检查 DataSet 中的变化。但那还为时过早,我认为 DataGridView 当时没有更新 DataTable。从第 2 个更改开始它起作用。是否有另一个事件在更新数据后被触发 table?
使用 DataTable.ColumnChanged Event 进行更改,按 TAB 或 ENTER 以获得原始值和建议值。在下面的例子中我们首先订阅DataTable的ColumnChanged事件
someDataTable.ColumnChanged += ColumnChanged;
然后,在这种情况下显示值 Visual Studio 输出 window
public void ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
Console.WriteLine($" Column name {e.Column.ColumnName}");
Console.WriteLine($" Original value [{e.Row[e.Column.ColumnName, DataRowVersion.Original]}]");
Console.WriteLine($" Propose value [{e.ProposedValue}]");
}
或有选择性
public void ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
if (
e.Row.RowState == DataRowState.Deleted ||
e.Row.RowState == DataRowState.Detached ||
e.Row.RowState == DataRowState.Added)
return;
Console.WriteLine($" Column name {e.Column.ColumnName}");
Console.WriteLine($" Original value [{e.Row[e.Column.ColumnName, DataRowVersion.Original]}]");
Console.WriteLine($" Propose value [{e.ProposedValue}]");
}