예제 #1
0
        public T GetRefilledEntity <T>(DataGridView dgv) where T : class, new()
        {
            ColumnMember[]  columnMembers   = m_fillEntrys[dgv] as ColumnMember[];
            CGridRefillTool cGridRefillTool = new CGridRefillTool(dgv, columnMembers);

            return(cGridRefillTool.GetRefilledEntity <T>());
        }
예제 #2
0
        public IList <T> GetChangedEntityList <T>(DataGridView dgv, bool clearChangedMark) where T : class
        {
            string text = m_watchEntrys[dgv] as string;

            if (text != null)
            {
                ColumnMember[]  columnMembers   = m_fillEntrys[dgv] as ColumnMember[];
                CGridRefillTool cGridRefillTool = new CGridRefillTool(dgv, columnMembers);
                try
                {
                    dgv.CellValueChanged -= DataGridView_CellValueChanged;
                    if (clearChangedMark)
                    {
                        m_watchChanges.Remove(dgv);
                    }
                    return(cGridRefillTool.GetChangedRowDataList <T>(text, clearChangedMark));
                }
                catch
                {
                    throw;
                }
                finally
                {
                    if (dgv.Columns.Contains(text))
                    {
                        dgv.CellValueChanged += DataGridView_CellValueChanged;
                    }
                }
            }
            return(new T[0]);
        }
예제 #3
0
        public IList GetRefilledEntityList(DataGridView dgv)
        {
            ColumnMember[]  columnMembers   = m_fillEntrys[dgv] as ColumnMember[];
            CGridRefillTool cGridRefillTool = new CGridRefillTool(dgv, columnMembers);

            return(cGridRefillTool.GetRefilledRowDataList());
        }
예제 #4
0
        internal override void FillEntity(Control control, object entity)
        {
            DataGridView dataGridView = control as DataGridView;

            if (control == null || dataGridView == null)
            {
                throw new ArgumentNullException("control");
            }
            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }
            if (m_member.Trim() == string.Empty || m_columnMembers == null || m_columnMembers.Length <= 0)
            {
                return;
            }
            try
            {
                IList list         = null;
                Type  propertyType = PropertyHelper.GetPropertyType(m_member, entity);
                if (propertyType.IsArray)
                {
                    Type            elementType     = propertyType.GetElementType();
                    CGridRefillTool cGridRefillTool = new CGridRefillTool(dataGridView, m_columnMembers);
                    list = cGridRefillTool.GetRefilledRowDataList(elementType);
                    if (list != null)
                    {
                        ArrayList arrayList = new ArrayList(list);
                        list = arrayList.ToArray(elementType);
                    }
                }
                PropertyHelper.SetPropertyValue(m_member, entity, list);
            }
            catch
            {
                throw;
            }
        }
예제 #5
0
 internal object GetRefilledMemberItem(DataGridView dgv, int index, Type type)
 {
     if (dgv == null)
     {
         throw new ArgumentNullException("dgv");
     }
     if (type == null)
     {
         throw new ArgumentNullException("type");
     }
     if (m_columnMembers == null || m_columnMembers.Length <= 0)
     {
         return(null);
     }
     try
     {
         CGridRefillTool cGridRefillTool = new CGridRefillTool(dgv, m_columnMembers);
         return(cGridRefillTool.GetRefillEntity(index, type));
     }
     catch
     {
         throw;
     }
 }