/// <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); }
// 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)); }
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)); }
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); } } } }