Index: DamClients/DamUI/trunk/src/Dam/Forms/DamContext.cs =================================================================== diff -u -r6436 -r6656 --- DamClients/DamUI/trunk/src/Dam/Forms/DamContext.cs (.../DamContext.cs) (revision 6436) +++ DamClients/DamUI/trunk/src/Dam/Forms/DamContext.cs (.../DamContext.cs) (revision 6656) @@ -49,6 +49,22 @@ public bool Wti { get; set; } = true; /// + /// Returns a flag to indicate that this property must be validated + /// + /// The source + /// The member + /// the flag + public override bool? ShouldValidate(object source, string member) + { + if (source is Soil soil) + { + return ShouldValidateSoil(member, soil); + } + + return base.ShouldValidate(source, member); + } + + /// /// Method indicating a visibility override value for a given instance object. /// /// Object being evaluated. @@ -121,11 +137,6 @@ } bool? isVisible = base.IsVisible(source, member); - if (member.Equals("Cohesion")) - { - return true; - } - if (isVisible != null && isVisible.Value) { return true; @@ -189,6 +200,12 @@ { return soil.ShearStrengthModel == ShearStrengthModel.CuCalculated; } + + if (member == StaticReflection.GetMemberName(s => s.Cohesion) || + member == StaticReflection.GetMemberName(s => s.FrictionAngle)) + { + return soil.ShearStrengthModel == ShearStrengthModel.CPhi; + } return true; } @@ -266,6 +283,24 @@ return base.GetFormat(type, source, member); } + private static bool ShouldValidateSoil(string member, Soil soil) + { + if (member == StaticReflection.GetMemberName(s => s.POP) || + member == StaticReflection.GetMemberName(s => s.RatioCuPc) || + member == StaticReflection.GetMemberName(s => s.StrengthIncreaseExponent)) + { + return soil.ShearStrengthModel == ShearStrengthModel.CuCalculated; + } + + if (member == StaticReflection.GetMemberName(s => s.Cohesion) || + member == StaticReflection.GetMemberName(s => s.FrictionAngle)) + { + return soil.ShearStrengthModel == ShearStrengthModel.CPhi; + } + + return true; + } + private bool? VisibleAccordingSoilUserFilter(string member) { if (alwaysVisibleProperties.Contains(member))