Index: Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs
===================================================================
diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -r4edccb5b18b90b76f2825a72836ba9bffe4770a3
--- Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb)
+++ Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision 4edccb5b18b90b76f2825a72836ba9bffe4770a3)
@@ -354,12 +354,17 @@
}
///
- /// Refreshes the and performs an .
+ /// Refreshes the .
///
- public void RefreshDataGridView()
+ /// Indicator whether the column widths in the control should automatically be resized.
+ public void RefreshDataGridView(bool shouldAutoResizeColumns = true)
{
dataGridView.Refresh();
- AutoResizeColumns();
+
+ if (shouldAutoResizeColumns)
+ {
+ AutoResizeColumns();
+ }
}
///
Index: Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs
===================================================================
diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -r4edccb5b18b90b76f2825a72836ba9bffe4770a3
--- Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs (.../DataGridViewControlTest.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb)
+++ Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs (.../DataGridViewControlTest.cs) (revision 4edccb5b18b90b76f2825a72836ba9bffe4770a3)
@@ -500,7 +500,7 @@
}
[Test]
- public void RefreshDataGridView_AddLongerText_IncreasesColumnWidth()
+ public void RefreshDataGridView_ShouldAutoResizeTrueAndLongerText_IncreasesColumnWidth()
{
using (var form = new Form())
using (var control = new DataGridViewControl())
@@ -531,7 +531,7 @@
}
[Test]
- public void RefreshDataGridView_AddShorterText_DecreasesColumnWidth()
+ public void RefreshDataGridView_ShouldAutoResizeTrueAndShorterText_DecreasesColumnWidth()
{
using (var form = new Form())
using (var control = new DataGridViewControl())
@@ -562,6 +562,68 @@
}
[Test]
+ public void RefreshDataGridView_ShouldAutoResizeFalseAndLongerText_SameColumnWidth()
+ {
+ using (var form = new Form())
+ using (var control = new DataGridViewControl())
+ {
+ form.Controls.Add(control);
+ form.Show();
+
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test");
+ var dataSource = new[]
+ {
+ new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "Test")
+ };
+ control.SetDataSource(dataSource);
+
+ DataGridViewCell dataGridViewCell = control.GetCell(0, 0);
+ control.SetCurrentCell(dataGridViewCell);
+
+ int initialWidth = dataGridViewCell.OwningColumn.Width;
+ dataSource[0].TestString = "This is a long textwegawegwegwetawergawegawegtwaegwaeg.";
+
+ // Call
+ control.RefreshDataGridView(false);
+
+ // Assert
+ int longTextWidth = dataGridViewCell.OwningColumn.Width;
+ Assert.AreEqual(longTextWidth, initialWidth);
+ }
+ }
+
+ [Test]
+ public void RefreshDataGridView_ShouldAutoResizeFalseAndShorterText_SameColumnWidth()
+ {
+ using (var form = new Form())
+ using (var control = new DataGridViewControl())
+ {
+ form.Controls.Add(control);
+ form.Show();
+
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test");
+ var dataSource = new[]
+ {
+ new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "This is a long textwegawegwegwetawergawegawegtwaegwaeg.")
+ };
+ control.SetDataSource(dataSource);
+
+ DataGridViewCell dataGridViewCell = control.GetCell(0, 0);
+ control.SetCurrentCell(dataGridViewCell);
+
+ int initialWidth = dataGridViewCell.OwningColumn.Width;
+ dataSource[0].TestString = "Test";
+
+ // Call
+ control.RefreshDataGridView(false);
+
+ // Assert
+ int newTextWidth = dataGridViewCell.OwningColumn.Width;
+ Assert.AreEqual(newTextWidth, initialWidth);
+ }
+ }
+
+ [Test]
public void AutoResizeColumns_AddLongerText_IncreasesColumnWidth()
{
using (var form = new Form())