解決WPF 快速點選Datagrid出現異常問題
在WPF開發中最近遇到一個很變態的問題:快速點選Datagrid之後,再對Datagrid操作時會出現如下異常
private void dtgSchemeApp_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
if (IsUnderTabHeader(e.OriginalSource as DependencyObject))
{
CommitTables(this.LV_Points);
}
}
private bool IsUnderTabHeader(DependencyObject control)
{
if (control is Border)
return true;
DependencyObject parent = VisualTreeHelper.GetParent(control);
if (parent == null)
return false;
return IsUnderTabHeader(parent);
}
private void CommitTables(DependencyObject control)
{
if (control is DataGrid)
{
DataGrid grid = control as DataGrid;
grid.CommitEdit(DataGridEditingUnit.Row, true);
return;
}
int childrenCount = VisualTreeHelper.GetChildrenCount(control);
for (int childIndex = 0; childIndex < childrenCount; childIndex++)
CommitTables(VisualTreeHelper.GetChild(control, childIndex));
}