Index: src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs =================================================================== diff -u -r420 -r421 --- src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs (.../DSoilModelPlugin.cs) (revision 420) +++ src/Deltares.DSoilModel.Forms/DSoilModelPlugin.cs (.../DSoilModelPlugin.cs) (revision 421) @@ -1091,42 +1091,50 @@ } } - private bool CanDelete(object o) + private bool CanDeleteSoil(DSoilModelProject prj, Soil soil) { var result = true; - var soil = o as Soil; - if (soil != null) + // 1D profiles + foreach (var sp1d in prj.SoilProfiles1D) { - // 1D profiles - foreach (var sp1d in project.SoilProfiles1D) + if (sp1d.Layers.Any(l => l.Soil == soil)) { - if (sp1d.Layers.Any(l => l.Soil == soil)) - { - LogErrorCannotDelete(soil, sp1d); - result = false; - } + LogErrorCannotDelete(soil, sp1d); + result = false; } + } - // 2D profiles - foreach (var sp2d in project.SoilProfiles2D) + // 2D profiles + foreach (var sp2d in prj.SoilProfiles2D) + { + if (sp2d.Surfaces.Any(s => s.Soil == soil)) { - if (sp2d.Surfaces.Any(s => s.Soil == soil)) - { - LogErrorCannotDelete(soil, sp2d); - result = false; - } - } - - // soil in the segments - foreach (var sgm in project.SoilSegments.Where(sgm => sgm.DefaultFillMaterialName == soil)) - { - LogErrorCannotDelete(soil, sgm); + LogErrorCannotDelete(soil, sp2d); result = false; } } + + // soil in the segments + foreach (var sgm in prj.SoilSegments.Where(sgm => sgm.DefaultFillMaterialName == soil)) + { + LogErrorCannotDelete(soil, sgm); + result = false; + } return result; } + private bool CanDelete(object o) + { + if (o is Soil) + { + return CanDeleteSoil(Project, o as Soil); + } + else + { + return true; + } + } + private void RemoveBarButtonItem(GridViewControl gridViewTable, string buttonName) { var manager = gridViewTable.Toolbar.Manager;