C# DataGrid检查所有单元格是否在编辑状态
时间: 2023-11-27 11:49:52 浏览: 36
可以使用 DataGrid 的 `IsCurrentCellInEditMode` 方法来检查当前单元格是否在编辑状态,但是要检查所有单元格是否在编辑状态,需要遍历 DataGrid 中的所有单元格,并依次调用 `IsCurrentCellInEditMode` 方法。
以下是一个示例代码:
```csharp
bool IsAnyCellInEditMode(DataGrid dataGrid)
{
foreach (var item in dataGrid.Items)
{
// 获取 DataGridRow
var row = dataGrid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
if (row != null)
{
// 遍历 DataGridRow 中的所有单元格
for (int i = 0; i < dataGrid.Columns.Count; i++)
{
// 获取 DataGridCell
var cell = dataGrid.Columns[i].GetCellContent(row)?.Parent as DataGridCell;
if (cell != null && cell.IsEditing)
{
// 如果有任何一个单元格在编辑状态,则返回 true
return true;
}
}
}
}
return false;
}
```
可以将上述代码放在需要检查所有单元格是否在编辑状态的地方调用。如果返回值为 true,则说明有单元格在编辑状态。