Exemple #1
0
 public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
 {
     if (destinationType == typeof(InstanceDescriptor) && value is CheckBoxEntry)
     {
         Type[] types = new Type[1]
         {
             typeof(string)
         };
         CheckBoxEntry checkBoxEntry = (CheckBoxEntry)value;
         object[]      arguments     = new object[1]
         {
             checkBoxEntry.CheckedMember
         };
         return(new InstanceDescriptor(typeof(CheckBoxEntry).GetConstructor(types), arguments));
     }
     return(base.ConvertTo(context, culture, value, destinationType));
 }
Exemple #2
0
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            if (context != null && context.Instance != null && provider != null)
            {
                BaseEntry baseEntry = value as BaseEntry;
                switch (context.Instance.GetType().Name)
                {
                case "DataGridView":
                {
                    CGridEntry cGridEntry = baseEntry as CGridEntry;
                    if (cGridEntry == null)
                    {
                        cGridEntry = new CGridEntry();
                    }
                    HybridDictionary hybridDictionary2 = new HybridDictionary(10);
                    if (cGridEntry.ColumnMembers != null && cGridEntry.ColumnMembers.Length > 0)
                    {
                        for (int j = 0; j < cGridEntry.ColumnMembers.Length; j++)
                        {
                            if (!hybridDictionary2.Contains(cGridEntry.ColumnMembers[j].ColumnName))
                            {
                                hybridDictionary2.Add(cGridEntry.ColumnMembers[j].ColumnName, cGridEntry.ColumnMembers[j].Member);
                            }
                        }
                    }
                    ArrayList    arrayList2   = new ArrayList();
                    DataGridView dataGridView = context.Instance as DataGridView;
                    foreach (DataGridViewColumn column in dataGridView.Columns)
                    {
                        string dataPropertyName = column.DataPropertyName;
                        if (dataPropertyName.Trim() != string.Empty)
                        {
                            arrayList2.Add(new ColumnMember(column.Name, hybridDictionary2.Contains(dataPropertyName) ? hybridDictionary2[dataPropertyName].ToString() : column.DataPropertyName));
                        }
                    }
                    if (arrayList2.Count > 0)
                    {
                        cGridEntry.ColumnMembers = new ColumnMember[arrayList2.Count];
                        arrayList2.CopyTo(cGridEntry.ColumnMembers);
                    }
                    baseEntry = cGridEntry;
                    break;
                }

                case "CheckBox":
                case "ToolStripCheckBox":
                    if (baseEntry == null)
                    {
                        baseEntry = new CheckBoxEntry();
                    }
                    break;

                case "DateRange":
                    if (baseEntry == null)
                    {
                        baseEntry = new DateRangeEntry();
                    }
                    break;

                default:
                    if (baseEntry == null)
                    {
                        baseEntry = new TextEntry();
                    }
                    break;
                }
                IWindowsFormsEditorService windowsFormsEditorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
                if (windowsFormsEditorService == null)
                {
                    return(null);
                }
                EntryForm entryForm = new EntryForm(baseEntry);
                if (windowsFormsEditorService.ShowDialog(entryForm) == DialogResult.OK)
                {
                    baseEntry = entryForm.Entry;
                    context.OnComponentChanged();
                    return(baseEntry);
                }
                return(value);
            }
            return(base.EditValue(context, provider, value));
        }