Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -r6757ae6f6f8f07d3d824b58eccca696ad7e53325 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 6757ae6f6f8f07d3d824b58eccca696ad7e53325) @@ -167,6 +167,14 @@ UpdateFailureMechanismAssemblyResultControl(); } + /// + /// Refreshes the data grid in the view. + /// + protected virtual void RefreshDataGrid() + { + DataGridViewControl.RefreshDataGridView(false); + } + private bool HasManualAssemblyResults() { return HasSectionResultsHelper.HasManualAssemblyResults(FailureMechanism); @@ -240,7 +248,7 @@ private void RowUpdated(object sender, EventArgs eventArgs) { rowUpdating = true; - DataGridViewControl.RefreshDataGridView(); + RefreshDataGrid(); UpdateFailureMechanismAssemblyResultControl(); } Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs =================================================================== diff -u -r2a81f01756e227d5ce93717b21b87e8a5cd5fcbb -r6757ae6f6f8f07d3d824b58eccca696ad7e53325 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision 2a81f01756e227d5ce93717b21b87e8a5cd5fcbb) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision 6757ae6f6f8f07d3d824b58eccca696ad7e53325) @@ -130,17 +130,19 @@ { // Setup const int nameColumnIndex = 0; + const int stringColumnIndex = 1; // Call using (ShowFailureMechanismResultsView(new ObservableList())) { // Assert DataGridView dataGridView = GetDataGridView(); - Assert.AreEqual(1, dataGridView.ColumnCount); + Assert.AreEqual(2, dataGridView.ColumnCount); Assert.IsInstanceOf(dataGridView.Columns[nameColumnIndex]); Assert.AreEqual("Test", dataGridView.Columns[nameColumnIndex].HeaderText); + Assert.AreEqual("TestString", dataGridView.Columns[stringColumnIndex].HeaderText); } } @@ -501,6 +503,33 @@ } [Test] + public void GivenFailureMechanismResultView_WhenRowUpdated_ThenColumnsDoNotAutoResize() + { + // Given + var sectionResults = new ObservableList + { + FailureMechanismSectionResultTestFactory.CreateFailureMechanismSectionResult() + }; + + using (ShowFailureMechanismResultsView(sectionResults)) + { + DataGridView dataGridView = GetDataGridView(); + var row = (TestRow) dataGridView.Rows[0].DataBoundItem; + + DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[1]; + row.TestString = "a"; + int initialWidth = dataGridViewCell.OwningColumn.Width; + + // When + row.TestString = "Looong testing value"; + + // Then + int newWidth = dataGridViewCell.OwningColumn.Width; + Assert.AreEqual(initialWidth, newWidth); + } + } + + [Test] public void GivenFailureMechanismResultView_WhenResultRemovedAndSectionResultsNotified_ThenEventHandlersDisconnected() { // Given @@ -598,6 +627,7 @@ protected override void AddDataGridColumns() { DataGridViewControl.AddTextBoxColumn("Name", "Test", true); + DataGridViewControl.AddTextBoxColumn(nameof(TestRow.TestString), "TestString"); } protected override void UpdateAssemblyResultControl() @@ -615,11 +645,26 @@ private class TestRow : FailureMechanismSectionResultRow { + private string testString; + public TestRow(FailureMechanismSectionResult sectionResult) : base(sectionResult) { ColumnStateDefinitions.Add(0, new DataGridViewColumnStateDefinition()); } + public string TestString + { + get + { + return testString; + } + set + { + testString = value; + UpdateInternalData(); + } + } + public bool Updated { get; private set; } public void UpdateInternal()