public void UpdateLastRow <T>(List <T> list)
        {
            if (LastRowGrid != null)
            {
                List <T> last_row_source = new List <T>();
                T        last_row        = SRL.ClassManagement.CreateInstance <T>();
                foreach (var item in LastRowGrid.GetAggregatedColumns())
                {
                    object row_value = null;
                    switch (item.act)
                    {
                    case DataGridLastRow.AggreagteAction.Sum:
                        Type            property_type = SRL.ClassManagement.GetPropertyType <T>(item.column_name);
                        var             query         = list.Select(item.column_name);
                        var             qJson         = SRL.Json.ClassObjectToJson(query);
                        List <decimal?> row_obj_list  = Newtonsoft.Json.JsonConvert.DeserializeObject <List <decimal?> >(qJson);
                        row_value = row_obj_list.Sum();
                        break;

                    default:
                        break;
                    }
                    SRL.ClassManagement.SetPropertyAsObject <T>(item.column_name, last_row, row_value);
                }
                last_row_source.Add(last_row);
                LastRowGrid.BindData <T>(last_row_source);
            }
        }
 public void InsertColumns(List <GridColumn> cols)
 {
     Columns.Clear();
     foreach (GridColumn item in cols)
     {
         DataGridViewColumn column = new DataGridViewColumn()
         {
             Name = item.name, DataPropertyName = item.name, HeaderText = item.Text, Visible = item.visible, CellTemplate = new DataGridViewTextBoxCell()
         };
         Columns.Insert(cols.IndexOf(item), column);
     }
     LastRowGrid?.InsertColumns(cols);
 }
        public void UpdateLastRow <T>(DataTable dt)
        {
            if (LastRowGrid != null)
            {
                List <T> last_row_source = new List <T>();
                T        last_row        = SRL.ClassManagement.CreateInstance <T>();
                foreach (var item in LastRowGrid.GetAggregatedColumns())
                {
                    object row_obj = null;
                    switch (item.act)
                    {
                    case DataGridLastRow.AggreagteAction.Sum:
                        row_obj = dt.Compute($"Sum({item.column_name})", string.Empty);
                        break;

                    default:
                        break;
                    }
                    SRL.ClassManagement.SetProperty <T>(item.column_name, last_row, row_obj);
                }
                last_row_source.Add(last_row);
                LastRowGrid.BindData <T>(last_row_source);
            }
        }