private void btnFilter_Click(object sender, EventArgs e) { removeRows(); WFTranparentLoading.ShowLoading(Program.MainForm); List <Certificado> ListCertificados = Assinador.BuscaCertificadosValidos(); dataGridView1.AllowUserToAddRows = false; string sNome = txtFilterName.Text; txtFilterName.Text = ""; ListaPessoas = DataBase.ACSDataBase.GetAllGEDPessoasLike(sNome); List <string> ListaCertificadosUsuario = new List <string>(); foreach (var item in ListaPessoas) { DataGridViewRow row = new DataGridViewRow(); row.Height = 30; row.CreateCells(dataGridView1); row.Cells[0].Value = item.PES_NOME; row.Cells[0].Tag = item; foreach (var certs in item.GEDUSUARIOS) { ListaCertificadosUsuario.Add(certs.USR_SERIALNUMBERCERT); } dataGridView1.Rows.Add(row); } int iPosition = 0; foreach (DataGridViewRow row in dataGridView1.Rows) { DataGridViewTextBoxCell txtNome = (DataGridViewTextBoxCell)(row.Cells[0]); DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell)(row.Cells[1]); cell.DataSource = ListCertificados; cell.DisplayMember = "Nome"; cell.ValueMember = "Chave"; string certificadoRow = ListaCertificadosUsuario[iPosition]; bool fVerificaCertificado = false; foreach (var item in ListCertificados) { if (item.Chave == ListaCertificadosUsuario[iPosition]) { fVerificaCertificado = true; } } if (fVerificaCertificado) { cell.Value = certificadoRow; } iPosition++; } WFTranparentLoading.CloseLoading(); }