Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
            }
        }