Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -re4c1ee9fe5170ccf7794006d572461d3f88e7740 -r088f1f6f74733f2b37f6b79b434026bdbc34c941 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision e4c1ee9fe5170ccf7794006d572461d3f88e7740) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 088f1f6f74733f2b37f6b79b434026bdbc34c941) @@ -39,8 +39,9 @@ /// public partial class PipingCalculationsView : UserControl, IView { - private readonly RecursiveObserver pipingCalculationGroupObserver; private readonly Observer pipingSoilProfilesObserver; + private readonly Observer assessmentSectionObserver; + private readonly RecursiveObserver pipingCalculationGroupObserver; private AssessmentSectionBase assessmentSection; private PipingFailureMechanism pipingFailureMechanism; private PipingCalculationGroup pipingCalculationGroup; @@ -55,8 +56,9 @@ InitializeComponent(); InitializeDataGridView(); - pipingCalculationGroupObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pg => pg.Children.OfType()); pipingSoilProfilesObserver = new Observer(UpdateSoilProfileColumn); + assessmentSectionObserver = new Observer(UpdateHydraulicBoundaryLocationsColumn); + pipingCalculationGroupObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pg => pg.Children.OfType()); } /// @@ -91,11 +93,9 @@ { assessmentSection = value; - var hydraulicBoundaryLocations = assessmentSection != null && assessmentSection.HydraulicBoundaryDatabase != null - ? assessmentSection.HydraulicBoundaryDatabase.Locations - : null; + assessmentSectionObserver.Observable = assessmentSection; - hydraulicBoundaryLocationColumn.DataSource = GetHydraulicBoundaryLocationsDataSource(hydraulicBoundaryLocations); + UpdateHydraulicBoundaryLocationsColumn(); } } @@ -203,11 +203,13 @@ dataGridView.Columns.AddRange(nameColumn, soilProfileColumn, hydraulicBoundaryLocationColumn, dampingFactorExitMeanColumn, phreaticLevelExitMeanColumn, entryPointLColumn, exitPointLColumn); } - private void UpdateDataGridViewDataSource() + private void UpdateHydraulicBoundaryLocationsColumn() { - dataGridView.DataSource = pipingCalculationGroup.GetPipingCalculations() - .Select(pc => new PipingCalculationRow(pc)) - .ToList(); + var hydraulicBoundaryLocations = assessmentSection != null && assessmentSection.HydraulicBoundaryDatabase != null + ? assessmentSection.HydraulicBoundaryDatabase.Locations + : null; + + hydraulicBoundaryLocationColumn.DataSource = GetHydraulicBoundaryLocationsDataSource(hydraulicBoundaryLocations); } private void UpdateSoilProfileColumn() @@ -217,6 +219,13 @@ soilProfileColumn.DataSource = GetSoilProfilesDataSource(pipingSoilProfiles); } + private void UpdateDataGridViewDataSource() + { + dataGridView.DataSource = pipingCalculationGroup.GetPipingCalculations() + .Select(pc => new PipingCalculationRow(pc)) + .ToList(); + } + private static List> GetSoilProfilesDataSource(IEnumerable soilProfiles = null) { var dataGridViewComboBoxItemWrappers = new List>