diff --git a/src/Core_30/HandyControl_Core_30/Themes/Styles/DataGrid.xaml b/src/Core_30/HandyControl_Core_30/Themes/Styles/DataGrid.xaml
index 3593fe3d..0381d657 100644
--- a/src/Core_30/HandyControl_Core_30/Themes/Styles/DataGrid.xaml
+++ b/src/Core_30/HandyControl_Core_30/Themes/Styles/DataGrid.xaml
@@ -257,6 +257,7 @@
+
diff --git a/src/Net_40/HandyControl_Net_40/Themes/Styles/DataGrid.xaml b/src/Net_40/HandyControl_Net_40/Themes/Styles/DataGrid.xaml
index 3f4bf166..a93c8b55 100644
--- a/src/Net_40/HandyControl_Net_40/Themes/Styles/DataGrid.xaml
+++ b/src/Net_40/HandyControl_Net_40/Themes/Styles/DataGrid.xaml
@@ -258,6 +258,7 @@
+
diff --git a/src/Net_GE45/HandyControl_Net_GE45/Themes/Styles/DataGrid.xaml b/src/Net_GE45/HandyControl_Net_GE45/Themes/Styles/DataGrid.xaml
index c3c5a29c..41eecff7 100644
--- a/src/Net_GE45/HandyControl_Net_GE45/Themes/Styles/DataGrid.xaml
+++ b/src/Net_GE45/HandyControl_Net_GE45/Themes/Styles/DataGrid.xaml
@@ -257,6 +257,7 @@
+
diff --git a/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs b/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs
index 12a0e725..ec004f40 100644
--- a/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs
@@ -8,6 +8,44 @@ namespace HandyControl.Controls
{
public class DataGridAttach
{
+ public static readonly DependencyProperty ApplyDefaultStyleProperty = DependencyProperty.RegisterAttached(
+ "ApplyDefaultStyle", typeof(bool), typeof(DataGridAttach), new PropertyMetadata(ValueBoxes.FalseBox, OnApplyDefaultStyleChanged));
+
+ private static void OnApplyDefaultStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ var grid = (DataGrid)d;
+ if ((bool)e.NewValue)
+ {
+ if (grid.AutoGenerateColumns)
+ {
+ grid.AutoGeneratedColumns += Grid_AutoGeneratedColumns;
+ return;
+ }
+
+ UpdateTextColumnStyles(grid);
+ 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)
+ => element.SetValue(ApplyDefaultStyleProperty, value);
+
+ public static bool GetApplyDefaultStyle(DependencyObject element)
+ => (bool) element.GetValue(ApplyDefaultStyleProperty);
+
public static readonly DependencyProperty TextColumnStyleProperty = DependencyProperty.RegisterAttached(
"TextColumnStyle", typeof(Style), typeof(DataGridAttach), new PropertyMetadata(default(Style), OnTextColumnStyleChanged));