Ejemplo n.º 1
0
 public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
 {
     if (context != null && context.Instance is DataGridView && provider != null)
     {
         ColumnMember[]   array            = value as ColumnMember[];
         HybridDictionary hybridDictionary = new HybridDictionary(10);
         if (array != null && array.Length > 0)
         {
             for (int i = 0; i < array.Length; i++)
             {
                 if (!hybridDictionary.Contains(array[i].ColumnName))
                 {
                     hybridDictionary.Add(array[i].ColumnName, array[i].Member);
                 }
             }
         }
         DataGridView dataGridView = (DataGridView)context.Instance;
         ArrayList    arrayList    = new ArrayList();
         foreach (DataGridViewColumn column in dataGridView.Columns)
         {
             string dataPropertyName = column.DataPropertyName;
             if (dataPropertyName.Trim() != string.Empty)
             {
                 arrayList.Add(new ColumnMember(column.Name, column.DataPropertyName));
             }
         }
         if (arrayList.Count > 0)
         {
             value = new ColumnMember[arrayList.Count];
             arrayList.CopyTo((ColumnMember[])value);
         }
     }
     return(base.EditValue(context, provider, value));
 }
Ejemplo n.º 2
0
 public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
 {
     if (destinationType == typeof(InstanceDescriptor) && value is ColumnMember)
     {
         Type[] types = new Type[2]
         {
             typeof(string),
             typeof(string)
         };
         ColumnMember columnMember = (ColumnMember)value;
         object[]     arguments    = new object[2]
         {
             columnMember.ColumnName,
             columnMember.Member
         };
         return(new InstanceDescriptor(typeof(ColumnMember).GetConstructor(types), arguments));
     }
     return(base.ConvertTo(context, culture, value, destinationType));
 }
Ejemplo n.º 3
0
 private void Initialize()
 {
     if (m_columnMembers == null)
     {
         ArrayList arrayList = new ArrayList();
         foreach (DataGridViewColumn column in m_dgv.Columns)
         {
             if (column.DataPropertyName.Trim() != string.Empty)
             {
                 ColumnMember value = new ColumnMember(column.Name, column.DataPropertyName.Trim());
                 arrayList.Add(value);
             }
         }
         if (arrayList.Count > 0)
         {
             m_columnMembers = (arrayList.ToArray(typeof(ColumnMember)) as ColumnMember[]);
         }
         else
         {
             m_columnMembers = new ColumnMember[0];
         }
     }
     m_complex = new bool[m_columnMembers.Length];
     for (int i = 0; i < m_columnMembers.Length; i++)
     {
         string text = m_columnMembers[i].Member.Trim();
         if (text == "this" || text.IndexOf(".") >= 0)
         {
             m_complex[i] = true;
         }
         else
         {
             m_complex[i] = false;
         }
     }
     m_infos = new PropertyInfo[m_columnMembers.Length];
 }