Exemplo n.º 1
0
        private void valueComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (!_valueWasAssigned ||
                typeComboBox.SelectedIndex < 0 || typeComboBox.SelectedIndex >= _currentNames.Count ||
                valueComboBox.SelectedIndex < 0 || valueComboBox.SelectedIndex >= _methods.Count)
            {
                return;
            }

            MethodDef m_ = _methods[valueComboBox.SelectedIndex] as MethodDef;
            MethodDef m  = new MethodDef(m_);

            m.Owner = _currentNames[typeComboBox.SelectedIndex];

            DesignerMethodEnum attrMethod = _property.Attribute as DesignerMethodEnum;

            if (attrMethod != null)
            {
                if ((attrMethod.MethodType & MethodType.AllowNullMethod) == MethodType.AllowNullMethod &&
                    attrMethod.HasFlags(DesignerProperty.DesignerFlags.BeValid) &&
                    attrMethod.Display == DesignerProperty.DisplayMode.List)
                {
                    object oldValue = _property.Property.GetValue(_object, null);

                    if (oldValue == null)
                    {
                        Nodes.Node n = this._object as Nodes.Node;

                        if (n != null)
                        {
                            //n.AddSubItem(new NodeViewData.SubItemProperty(n, _property, attrMethod));
                            n.DoSubItemAdded(_property);
                        }
                    }
                }

                _property.Property.SetValue(_object, m, null);
            }
            else
            {
                object        propertyMember = _property.Property.GetValue(_object, null);
                RightValueDef oldvarRV       = propertyMember as RightValueDef;

                RightValueDef v = new RightValueDef(m, oldvarRV.ValueClass);

                _property.Property.SetValue(_object, m, null);
            }

            OnValueChanged(_property);

            this.RereshProperty(true, _property);
        }