/// <summary>
        /// Add AssociationAttribute if required for the specified property
        /// </summary>
        /// <param name="pd">The property</param>
        /// <param name="attributes">The list of attributes to append to</param>
        private void AddAssociationAttributes(PropertyDescriptor pd, ICollection <Attribute> attributes)
        {
            var entityType  = (EntityType)EdmType;
            var navProperty = entityType.NavigationProperties.SingleOrDefault(n => n.Name == pd.Name);

            if (navProperty == null)
            {
                return;
            }
            var isManyToMany = navProperty.RelationshipType.RelationshipEndMembers[0].RelationshipMultiplicity == RelationshipMultiplicity.Many &&
                               navProperty.RelationshipType.RelationshipEndMembers[1].RelationshipMultiplicity == RelationshipMultiplicity.Many;

            if (isManyToMany)
            {
                return;
            }
            var assocAttrib = (AssociationAttribute)pd.Attributes[typeof(AssociationAttribute)];

            if (assocAttrib != null)
            {
                return;
            }
            assocAttrib = TypeDescriptionContext.CreateAssociationAttribute(navProperty);
            attributes.Add(assocAttrib);
        }
Esempio n. 2
0
        // Method that is target of a DesignerActionMethodItem.
        // It calls the string collection editor.
        public void EditNames()
        {
            PropertyDescriptor     itemsPropertyDescriptor = GetPropertyByName("Items");
            TypeDescriptionContext context = new TypeDescriptionContext(linkedControl, itemsPropertyDescriptor);
            UITypeEditor           editor  = (UITypeEditor)itemsPropertyDescriptor.GetEditor(typeof(UITypeEditor));

            itemsPropertyDescriptor.SetValue(linkedControl, editor.EditValue(context, context, linkedControl.Items));
        }
Esempio n. 3
0
    public override object EditValue(ITypeDescriptorContext context,
                                     IServiceProvider provider, object value)
    {
        var field = context.Instance.GetType().GetField("maskedTextBox",
                                                        System.Reflection.BindingFlags.NonPublic |
                                                        System.Reflection.BindingFlags.Instance);
        var maskedTextBox = (MaskedTextBox)field.GetValue(context.Instance);
        var maskProperty  = TypeDescriptor.GetProperties(maskedTextBox)["Mask"];
        var tdc           = new TypeDescriptionContext(maskedTextBox, maskProperty);
        var editor        = (UITypeEditor)maskProperty.GetEditor(typeof(UITypeEditor));

        return(editor.EditValue(tdc, provider, value));
    }
Esempio n. 4
0
    public void EditTextLines()
    {
        var linesPropertyDescriptor = TypeDescriptor.GetProperties(this.Control)["Lines"];
        var context = new TypeDescriptionContext(this.Control, linesPropertyDescriptor);
        var editor  = (UITypeEditor)linesPropertyDescriptor.GetEditor(typeof(UITypeEditor));
        var lines   = (this.Control).Lines;
        var result  = (string[])editor.EditValue(context, context, lines);

        if (!result.SequenceEqual(lines))
        {
            linesPropertyDescriptor.SetValue(this.Control, result);
        }
    }
    public override object EditValue(ITypeDescriptorContext context,
                                     IServiceProvider provider, object value)
    {
        var field = context.Instance.GetType().GetField("dataGridView1",
                                                        System.Reflection.BindingFlags.NonPublic |
                                                        System.Reflection.BindingFlags.Instance);
        var dataGridView1 = (DataGridView)field.GetValue(context.Instance);

        dataGridView1.Site = ((Control)context.Instance).Site;
        var columnsProperty = TypeDescriptor.GetProperties(dataGridView1)["Columns"];
        var tdc             = new TypeDescriptionContext(dataGridView1, columnsProperty);
        var editor          = (UITypeEditor)columnsProperty.GetEditor(typeof(UITypeEditor));
        var result          = editor.EditValue(tdc, provider, value);

        dataGridView1.Site = null;
        return(result);
    }
        /// <summary>
        /// Add AssociationAttribute if required for the specified property
        /// </summary>
        /// <param name="pd">The property</param>
        /// <param name="attributes">The list of attributes to append to</param>
        private void AddAssociationAttributes(PropertyDescriptor pd, List <Attribute> attributes)
        {
            EntityType         entityType  = (EntityType)EdmType;
            NavigationProperty navProperty = entityType.NavigationProperties.Where(n => n.Name == pd.Name).SingleOrDefault();

            if (navProperty != null)
            {
                bool isManyToMany = navProperty.RelationshipType.RelationshipEndMembers[0].RelationshipMultiplicity == RelationshipMultiplicity.Many &&
                                    navProperty.RelationshipType.RelationshipEndMembers[1].RelationshipMultiplicity == RelationshipMultiplicity.Many;
                if (!isManyToMany)
                {
                    AssociationAttribute assocAttrib = (AssociationAttribute)pd.Attributes[typeof(System.ComponentModel.DataAnnotations.AssociationAttribute)];
                    if (assocAttrib == null)
                    {
                        assocAttrib = TypeDescriptionContext.CreateAssociationAttribute(navProperty);
                        attributes.Add(assocAttrib);
                    }
                }
            }
        }