예제 #1
0
 public void Init(List<RowEntity> list, Dictionary<string, List<object>> comboList, Dictionary<string, Action<object, EventArgs>> actionList)
 {
     if (list == null)
     {
         list = new List<RowEntity>();
     }
     if (comboList == null)
     {
         comboList = new Dictionary<string, List<object>>();
     }
     if (actionList == null)
     {
         actionList = new Dictionary<string, Action<object, EventArgs>>();
     }
     float f = 100F / list.Count;
     this.tableLayoutPanel1.RowStyles[0].Height = f;
     this.tableLayoutPanel1.RowCount = list.Count;
     int j = 0;
     for (int i = 1; i < list.Count; i++)
     {
         this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, f));
     }
     foreach (RowEntity inst in list)
     {
         if (inst.Type == ControlType.TEXT_BOX)
         {
             UCRowTextBox row = new UCRowTextBox(inst);
             this.tableLayoutPanel1.Controls.Add(row, 0, j++);
         }
         else if (inst.Type == ControlType.COMBO_BOX)
         {
             if (comboList.ContainsKey(inst.Key))
             {
                 UCRowComboBox row = new UCRowComboBox(inst, comboList[inst.Key]);
                 if (actionList.ContainsKey(inst.Key))
                 {
                     row.SelectChanged = actionList[inst.Key];
                 }
                 this.tableLayoutPanel1.Controls.Add(row, 0, j++);
             }
         }
         else if (inst.Type == ControlType.DATE_TIME)
         {
             UCRowDateTime row = new UCRowDateTime(inst);
             this.tableLayoutPanel1.Controls.Add(row, 0, j++);
         }
     }
 }
예제 #2
0
 public bool ReadUI()
 {
     List<RowEntity> list = new List<RowEntity>();
     if (this.Entity == null)
     {
         this.Entity = System.Activator.CreateInstance<T>();
     }
     foreach (Control control in this.tableLayoutPanel1.Controls)
     {
         if (control is UCRowTextBox)
         {
             UCRowTextBox uc = control as UCRowTextBox;
             RowEntity entity = uc.GetRow();
             if (entity == null)
             {
                 return false;
             }
             list.Add(entity);
         }
         else if (control is UCRowComboBox)
         {
             UCRowComboBox uc = control as UCRowComboBox;
             RowEntity entity = uc.GetRow();
             if (entity == null)
             {
                 return false;
             }
             list.Add(entity);
         }
         else if (control is UCRowDateTime)
         {
             UCRowDateTime uc = control as UCRowDateTime;
             RowEntity entity = uc.GetRow();
             if (entity == null)
             {
                 return false;
             }
             list.Add(entity);
         }
     }
     Type type = typeof(T);
     foreach (RowEntity inst in list)
     {
         foreach (PropertyInfo pi in type.GetProperties())
         {
             if (this.ignoreFields.Contains(pi.Name))
             {
                 continue;
             }
             if (inst.Key == pi.Name)
             {
                 if (inst.DataType.IsEnum)
                 {
                     Type t = inst.DataType;
                     pi.SetValue(this.Entity, (int)(Enum.Parse(t, inst.Value.ToString())), null);
                 }
                 else
                 {
                     pi.SetValue(this.Entity, inst.Value, null);
                 }
                 break;
             }
         }
     }
     return true;
 }