/// <summary> /// Returns the default value for the current enumeration. /// </summary> /// <returns>List of default values.</returns> protected override List <object> GetDefaultValues() { Array array = Enum.GetValues(enumType); defaultValuesList = new List <object>(); if (this.IsFlags) { if (this.Elements.Count == 1) { Enum val = PropertyGridEditorViewModel.GetPropertyValue(this.Elements[0], this.PropertyName) as Enum; if (val != null) { foreach (object obj in array) { if (!(obj is Enum)) { continue; } bool bContains = false; if (val.HasFlag((Enum)obj)) { bContains = true; } Item item = new Item(this, obj, bContains); defaultValuesList.Add(item); } } else { foreach (object obj in array) { Item item = new Item(this, obj, false); defaultValuesList.Add(item); } } } } else { foreach (object obj in array) { defaultValuesList.Add(obj); } } return(defaultValuesList); }
/// <summary> /// Converts the property value (in respect to multiple source elements) and returns the converted value. /// </summary> /// <returns>Converted property value.</returns> /// <remarks> /// Converter: All equal --> use value. One differs --> null value. /// </remarks> public override object GetPropertyValue() { object value = PropertyGridEditorViewModel.GetPropertyValue(this.Elements[0], this.PropertyName); if (value is IEnumerable) { List <BaseModelElementViewModel> models = new List <BaseModelElementViewModel>(); foreach (ModelElement m in (IEnumerable)value) { models.Add(this.ViewModelStore.Factory.CreateModelElementBaseViewModel(m)); } return(models); } else { return(null); } }