我目前正在开发与数据库通信的应用程序。
该应用程序以隐藏代码的形式显示绑定到DataTable的DataGrid中数据库中的表:
MyDataGrid.ItemsSource = _myDataTable.DefaultView;
用户可以通过两种单独的方式来编辑数据:通过双击DataGrid中的单元格直接修改数据,或者使用质量替代面板(用户在其中选择各种参数,在TextBox中输入值),以及单击质量优先按钮。
单击此按钮后,可以通过链接请求匹配字段来直接在DataTable中修改数据,这很好。
但是,我希望突出显示由用户编辑的单元格。尽管在DataGrid编辑中这非常简单,但不适用于大规模编辑。
实际上,对于DataGrid编辑,我只是通过执行以下操作来更改DataGridCell样式:
private void MyDataGrid_OnCellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
if (e.EditAction == DataGridEditAction.Commit)
{
DependencyObject depObj = e.EditingElement;
while (depObj != null && !(depObj is DataGridCell))
{
depObj = VisualTreeHelper.GetParent(depObj);
}
if (depObj != null)
{
DataGridCell gridCell = (DataGridCell)depObj;
gridCell.Foreground = Brushes.Red;
}
}
}
我正在寻找一种在大规模编辑的情况下执行类似操作的方法,但无法找到一种方法来执行此操作。 您是否对如何突出显示DataTable中所做的更改有任何建议?