protected virtual void OnIsImplicitlyIncludedChanged(bool oldValue, bool newValue)
 {
     if ((State == InclusionExclusionCheckBoxState.Unchecked || State == InclusionExclusionCheckBoxState.PartiallyIncluded) && newValue == true)
     {
         State = InclusionExclusionCheckBoxState.ImplicitlyIncluded;
     }
     else if (State == InclusionExclusionCheckBoxState.ImplicitlyIncluded && newValue == false)
     {
         State = HasPartialInclusion ? InclusionExclusionCheckBoxState.PartiallyIncluded : InclusionExclusionCheckBoxState.Unchecked;
     }
 }
        protected virtual void OnStateChanged(InclusionExclusionCheckBoxState oldValue, InclusionExclusionCheckBoxState newValue)
        {
            if (oldValue != newValue)
            {
                OnStateChanged();
            }

            if (newValue == InclusionExclusionCheckBoxState.ImplicitlyIncluded || newValue == InclusionExclusionCheckBoxState.Included)
            {
                IsIncluded = true;
            }
            else
            {
                IsIncluded = false;
            }
        }
 public static bool IsExplicit(this InclusionExclusionCheckBoxState state)
 {
     return(state == InclusionExclusionCheckBoxState.Excluded || state == InclusionExclusionCheckBoxState.Included);
 }