Esempio n. 1
0
        private void LoadStaffsInGroup(int groupId)
        {
            //Back to main thread update UI
            if (InvokeRequired)
            {
                BeginInvoke(new Action(() =>
                {
                    dgvGroupStaffList.ShowLoading(true);
                }));
            }

            //Fill DataTable
            var staffs = StaffBLL.ListStaffsInGroup(groupId);
            var data   = new BindingList <StaffBinding>();


            foreach (var staff in staffs)
            {
                data.Add(new StaffBinding
                {
                    Id                   = staff.Id,
                    Name                 = staff.Name,
                    DoB                  = staff.DoB,
                    PhoneNumber          = staff.PhoneNumber,
                    IdentificationNumber = staff.IdentificationNumber,
                    Gender               = staff.Gender,
                    Address              = staff.Address,
                    Position             = staff.Assignments.FirstOrDefault(a => a.GroupId == groupId).Position,
                });
            }

            //Back to main thread update UI
            if (InvokeRequired)
            {
                BeginInvoke(new Action(() =>
                {
                    //Clear loading column
                    dgvGroupStaffList.Columns.Clear();

                    dgvGroupStaffList.Columns.Add("Id", "Mã");
                    dgvGroupStaffList.Columns.Add("Name", "Tên");
                    dgvGroupStaffList.Columns.Add("DoB", "Ngày sinh");
                    dgvGroupStaffList.Columns.Add("PhoneNumber", "SĐT");
                    dgvGroupStaffList.Columns.Add("IdentificationNumber", "CMND");
                    dgvGroupStaffList.Columns.Add("Gender", "Giới tính");
                    dgvGroupStaffList.Columns.Add("Address", "Địa chỉ");

                    dgvGroupStaffList.Columns["DoB"].DefaultCellStyle.Format = "dd/MM/yyyy";

                    foreach (DataGridViewColumn column in dgvGroupStaffList.Columns)
                    {
                        column.DataPropertyName = column.Name;
                        column.ReadOnly         = true;
                    }

                    DataGridViewComboBoxColumn dgvCmb = new DataGridViewComboBoxColumn();
                    dgvCmb.HeaderText       = "Nhiệm vụ";
                    dgvCmb.Name             = "Position";
                    dgvCmb.DataPropertyName = "Position";
                    dgvCmb.DisplayMember    = "Description";
                    dgvCmb.ValueMember      = "Value";
                    dgvCmb.BindEnumToDataGridViewCombobox <Position>();
                    dgvGroupStaffList.Columns.Add(dgvCmb);
                    dgvGroupStaffList.Columns["Position"].DisplayIndex = 2;

                    dgvGroupStaffList.DataSource = data;
                }));
            }
        }