fix: fixed datagrid small style invalid sometimes issue.

This commit is contained in:
NaBian committed 2022-08-20 14:20:46 +08:00
1 parent 9371513a0d
commit 0d6fd12dfe
7 files changed
+485 -33

No files matched your search

@@ -1,4 +1,5 @@
using System.Linq;
using System.Collections.Specialized;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
@@ -17,9 +18,17 @@ public class DataGridAttach
var grid = (DataGrid) d;
if ((bool) e.NewValue)
{
if (grid.AutoGenerateColumns)
grid.Columns.CollectionChanged += OnDataGridColumnsCollectionChanged;
}
else
{
grid.Columns.CollectionChanged -= OnDataGridColumnsCollectionChanged;
}
void OnDataGridColumnsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.Action is NotifyCollectionChangedAction.Remove or NotifyCollectionChangedAction.Move)
{
grid.AutoGeneratedColumns += Grid_AutoGeneratedColumns;
return;
}
@@ -27,18 +36,6 @@ public class DataGridAttach
UpdateComboBoxColumnStyles(grid);
UpdateCheckBoxColumnStyles(grid);
}
else
{
grid.AutoGeneratedColumns -= Grid_AutoGeneratedColumns;
}
}
private static void Grid_AutoGeneratedColumns(object sender, System.EventArgs e)
{
var grid = (DataGrid) sender;
UpdateTextColumnStyles(grid);
UpdateComboBoxColumnStyles(grid);
UpdateCheckBoxColumnStyles(grid);
}
public static void SetApplyDefaultStyle(DependencyObject element, bool value)