public static void OverrideValueEditorParameters(PropertyReferenceProperty baseProperty, PropertyReferenceProperty derivedProperty, string key) { SceneNodeProperty sceneNodeProperty = baseProperty as SceneNodeProperty; if (derivedProperty == null || sceneNodeProperty == null) { return; } ValueEditorParameters newParams = new ValueEditorParameters(sceneNodeProperty.Attributes, key); if (!(newParams["NumberRanges"] is NumberRangesAttribute)) { NumberRangesAttribute numberRangesAttribute = derivedProperty.Attributes[typeof(NumberRangesAttribute)] as NumberRangesAttribute ?? new NumberRangesAttribute(new double?(), new double?(), new double?(), new double?(), new bool?(false)); List <Attribute> list = new List <Attribute>(); foreach (object obj in sceneNodeProperty.Attributes) { list.Add((Attribute)obj); } list.Add((Attribute)numberRangesAttribute); newParams = new ValueEditorParameters(new AttributeCollection(list.ToArray()), key); } derivedProperty.OverrideValueEditorParameters(newParams); }
static ValueEditorParameters() { ValueEditorParameters.RegisterParameterName("NumberRanges", typeof(NumberRangesAttribute)); ValueEditorParameters.RegisterParameterName("NumberIncrements", typeof(NumberIncrementsAttribute)); ValueEditorParameters.RegisterParameterName("NumberFormat", typeof(NumberFormatAttribute)); }