示例#1
0
 /// <summary>
 /// Generate aspect getters and putters for any columns that are missing them (and for which we have
 /// enough information to actually generate a getter)
 /// </summary>
 protected virtual void CreateMissingAspectGettersAndPutters()
 {
     foreach (OLVColumn x in this.ListView.AllColumns)
     {
         OLVColumn column = x; // stack based variable accessible from closures
         if (column.AspectGetter == null && !String.IsNullOrEmpty(column.AspectName))
         {
             column.AspectGetter = delegate(object row) {
                 // In most cases, rows will be DataRowView objects
                 DataRowView drv = row as DataRowView;
                 if (drv == null)
                 {
                     return(column.GetAspectByName(row));
                 }
                 return((drv.Row.RowState == DataRowState.Detached) ? null : drv[column.AspectName]);
             };
         }
         if (column.IsEditable && column.AspectPutter == null && !String.IsNullOrEmpty(column.AspectName))
         {
             column.AspectPutter = delegate(object row, object newValue) {
                 // In most cases, rows will be DataRowView objects
                 DataRowView drv = row as DataRowView;
                 if (drv == null)
                 {
                     column.PutAspectByName(row, newValue);
                 }
                 else
                 {
                     drv[column.AspectName] = newValue;
                 }
             };
         }
     }
 }
示例#2
0
 protected virtual void CreateMissingAspectGettersAndPutters()
 {
     for (int i = 0; i < base.Columns.Count; i++)
     {
         AspectGetterDelegate delegate2 = null;
         AspectPutterDelegate delegate3 = null;
         OLVColumn            column    = this.GetColumn(i);
         if ((column.AspectGetter == null) && !string.IsNullOrEmpty(column.AspectName))
         {
             if (delegate2 == null)
             {
                 delegate2 = delegate(object row) {
                     DataRowView view = row as DataRowView;
                     if (view != null)
                     {
                         return(view[column.AspectName]);
                     }
                     return(column.GetAspectByName(row));
                 };
             }
             column.AspectGetter = delegate2;
         }
         if ((column.IsEditable && (column.AspectPutter == null)) && !string.IsNullOrEmpty(column.AspectName))
         {
             if (delegate3 == null)
             {
                 delegate3 = delegate(object row, object newValue) {
                     DataRowView view = row as DataRowView;
                     if (view != null)
                     {
                         view[column.AspectName] = newValue;
                     }
                     else
                     {
                         column.PutAspectByName(row, newValue);
                     }
                 };
             }
             column.AspectPutter = delegate3;
         }
     }
 }
 /// <summary>
 /// Generate aspect getters and putters for any columns that are missing them (and for which we have
 /// enough information to actually generate a getter)
 /// </summary>
 protected virtual void CreateMissingAspectGettersAndPutters()
 {
     for (int i = 0; i < this.Columns.Count; i++)
     {
         OLVColumn column = this.GetColumn(i);
         if (column.AspectGetter == null && !String.IsNullOrEmpty(column.AspectName))
         {
             column.AspectGetter = delegate(object row) {
                 // In most cases, rows will be DataRowView objects
                 DataRowView drv = row as DataRowView;
                 if (drv != null)
                 {
                     return(drv[column.AspectName]);
                 }
                 else
                 {
                     return(column.GetAspectByName(row));
                 }
             };
         }
         if (column.IsEditable && column.AspectPutter == null && !String.IsNullOrEmpty(column.AspectName))
         {
             column.AspectPutter = delegate(object row, object newValue) {
                 // In most cases, rows will be DataRowView objects
                 DataRowView drv = row as DataRowView;
                 if (drv != null)
                 {
                     drv[column.AspectName] = newValue;
                 }
                 else
                 {
                     column.PutAspectByName(row, newValue);
                 }
             };
         }
     }
 }