void contextDescriptor_CustomValue(object sender, CustomValueEventArgs e)
 {
     if (fCustomValues.ContainsKey(e.PropertyName))
     {
         e.Handled     = true;
         e.CustomValue = fCustomValues[e.PropertyName];
     }
 }
        public override object GetPropertyValue(object source, EvaluatorProperty propertyPath)
        {
            CustomValueEventArgs customValue = GetCustomValue(propertyPath.PropertyPath);

            if (customValue.Handled)
            {
                return(customValue.CustomValue);
            }
            return(base.GetPropertyValue(source, propertyPath));
        }
        CustomValueEventArgs GetCustomValue(string propertyName)
        {
            CustomValueEventArgs args = new CustomValueEventArgs(propertyName);

            if (fCustomValue != null)
            {
                fCustomValue(this, args);
            }
            return(args);
        }