Index: Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs
===================================================================
diff -u -r4edccb5b18b90b76f2825a72836ba9bffe4770a3 -r8d6f5fd7a52da4f8d0c6c3d84e898db811ca0a53
--- Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision 4edccb5b18b90b76f2825a72836ba9bffe4770a3)
+++ Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision 8d6f5fd7a52da4f8d0c6c3d84e898db811ca0a53)
@@ -376,6 +376,15 @@
}
///
+ /// Adjusts the width of the column on index to fit the contents of all its cells,
+ /// including the header cell.
+ ///
+ public void AutoResizeColumn(int columnIndex)
+ {
+ dataGridView.AutoResizeColumn(columnIndex);
+ }
+
+ ///
/// Ends the editing when the current cell is in edit mode.
/// Sets the current cell to null.
///
Index: Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs
===================================================================
diff -u -r4edccb5b18b90b76f2825a72836ba9bffe4770a3 -r8d6f5fd7a52da4f8d0c6c3d84e898db811ca0a53
--- Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs (.../DataGridViewControlTest.cs) (revision 4edccb5b18b90b76f2825a72836ba9bffe4770a3)
+++ Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs (.../DataGridViewControlTest.cs) (revision 8d6f5fd7a52da4f8d0c6c3d84e898db811ca0a53)
@@ -655,6 +655,74 @@
}
[Test]
+ public void AutoResizeColumn_AddShorterText_DecreasesColumnWidth()
+ {
+ using (var form = new Form())
+ using (var control = new DataGridViewControl())
+ {
+ form.Controls.Add(control);
+ form.Show();
+
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test");
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test 2");
+ var dataSource = new[]
+ {
+ new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "Long text hello world")
+ };
+ control.SetDataSource(dataSource);
+
+ DataGridViewCell dataGridViewCell1 = control.GetCell(0, 0);
+ DataGridViewCell dataGridViewCell2 = control.GetCell(0, 1);
+ control.SetCurrentCell(dataGridViewCell1);
+
+ int initialWidth1 = dataGridViewCell1.OwningColumn.Width;
+ int initialWidth2 = dataGridViewCell2.OwningColumn.Width;
+ dataSource[0].TestString = "Test";
+
+ // Call
+ control.AutoResizeColumn(0);
+
+ // Assert
+ Assert.Less(dataGridViewCell1.OwningColumn.Width, initialWidth1);
+ Assert.AreEqual(dataGridViewCell2.OwningColumn.Width, initialWidth2);
+ }
+ }
+
+ [Test]
+ public void AutoResizeColumn_AddLongerText_IncreasesColumnWidth()
+ {
+ using (var form = new Form())
+ using (var control = new DataGridViewControl())
+ {
+ form.Controls.Add(control);
+ form.Show();
+
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test");
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test 2");
+ var dataSource = new[]
+ {
+ new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "Test")
+ };
+ control.SetDataSource(dataSource);
+
+ DataGridViewCell dataGridViewCell1 = control.GetCell(0, 0);
+ DataGridViewCell dataGridViewCell2 = control.GetCell(0, 1);
+ control.SetCurrentCell(dataGridViewCell1);
+
+ int initialWidth1 = dataGridViewCell1.OwningColumn.Width;
+ int initialWidth2 = dataGridViewCell2.OwningColumn.Width;
+ dataSource[0].TestString = "This is a long textwegawegwegwetawergawegawegtwaegwaeg.";
+
+ // Call
+ control.AutoResizeColumn(0);
+
+ // Assert
+ Assert.Greater(dataGridViewCell1.OwningColumn.Width, initialWidth1);
+ Assert.AreEqual(dataGridViewCell2.OwningColumn.Width, initialWidth2);
+ }
+ }
+
+ [Test]
public void AutoResizeColumns_AddShorterText_DecreasesColumnWidth()
{
using (var form = new Form())