Fórum Preencher ComboBox com LINQ #16709
02/03/2010
Seguinte, tenho a situação abaixo:
---------INICIO CODIGO---------------
Observação:
mTblHistoricoSintetico é DataTable e esta preenchido corretamente.
Dim dataTableGenercio = mTblHistoricoSintetico.Clone
'Filtrar vTblOrdensEnviadas
Dim vView As DataView
Dim vRegistro As DataRow
Dim vTblTempOrdensEnviadas As DataTable = vTblOrdensEnviadas.Copy
vView = vTblTempOrdensEnviadas.DefaultView
vView.RowFilter = ID_COL_CODCLIENTE & " = " & vCodCliente
For index As Integer = 0 To vView.Count - 1
vRegistro = dataTableGenercio.NewRow
vRegistro(ID_COL_CODCLIENTE) = vView(index)(ID_COL_CODCLIENTE)
vRegistro(ID_COL_ATIVO) = vView(index)(ID_COL_ATIVO)
vRegistro(ID_COL_NOMECLIENTE) = vView(index)(ID_COL_NOMECLIENTE)
dataTableGenercio.Rows.Add(vRegistro)
Next
'Filtrar vTblOrdensExecutadas
Dim vTblTempOrdensExecutadas As DataTable = vTblOrdensEnviadas.Copy
vView = vTblTempOrdensExecutadas.DefaultView
vView.RowFilter = ID_COL_CODCLIENTE & " = " & vCodCliente
For index As Integer = 0 To vView.Count - 1
vRegistro = dataTableGenercio.NewRow
vRegistro(ID_COL_CODCLIENTE) = vView(index)(ID_COL_CODCLIENTE)
vRegistro(ID_COL_ATIVO) = vView(index)(ID_COL_ATIVO)
vRegistro(ID_COL_NOMECLIENTE) = vView(index)(ID_COL_NOMECLIENTE)
dataTableGenercio.Rows.Add(vRegistro)
Next
'Dim names = (From dr In dataTableGenercio.Rows _
' Select ID_COL_ATIVO.Distinct())
Dim camposDistintos = (From dr In dataTableGenercio.Rows _
Select ID_COL_ATIVO).Distinct()
cmbAtivos.ValueMember = ID_COL_ATIVO
cmbAtivos.DisplayMember = ID_COL_ATIVO
cmbAtivos.DataSource = camposDistintos.ToList
cmbClientes.ValueMember = ID_COL_CODCLIENTE
cmbClientes.DisplayMember = ID_COL_NOMECLIENTE
cmbClientes.DataSource = camposDistintos.ToList
------------FIM CODIGO-----------------
- Preciso preencher estas combobox com os Ativos e Clientes, mas preciso do Distinct, quero usar o LINQ para esta tarefa.
Obrigado desde já e aguardo contato,
Vinicius Climaco.
Posts
Ola Vinicius, tente usar o exemplo abaixo:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// replace the data in the db with new info
da.Fill(dtUsers);
// save the source
cboName.ItemsSource = from u in dtUsers.AsEnumerable() select new { u.UserID, FormattedName = String.Format(" ", query.FirstName, query.MiddleInitial, query.LastName)); cboName.DisplayMemberPath = "FormattedName";
cboName.SelectedValuePath = "UserID";
}
Não sei qual exatamente sua dúvida, mas creio que o exemplo que me mandou não funciona, correto?
Aguardo seu contato
Att
Luiz Maia
02/03/2010
Vinicius Climaco
Seguinte, o que estou precisando é preencher uma combobox com os dados de um datatable através do LINQ, porém antes através do LINQ também quero das distinct em uma coluna. Desculpe, mas este exemplo não foi satisfatório e não cheguei ao resultado esperado ainda.
Vinicius,
Para popular a combo com os registros de um DataTable, é somente isto:
private DataTable dt = Customers.Retrieve();
ComboBox1.DataSource = dt;
ComboBox1.DisplayMember = "FullName";
ComboBox1.ValueMember = "CustomerId";
Com Linq você pode adicionar critérios de filtragem, e para modificar os registros usando o Distinct faça o script abaixo:
var query = (dt.AsEnumerable().Distinct());
ComboBox2.DataSource = query.AsDataView();
ComboBox2.DisplayMember = "FullName";
ComboBox2.ValueMember = "CustomerId";
Aguardo seu contato.
Att
Luiz Maia
E ai Vinicius, resolveu?
Aguardo...
Abraços
Att
Luiz Maia
Vinicius,
Como não obtivemos resposta, estamos concluindo o chamado.
Continuamos a sua disposição para qualquer tipo de dúvida.
Abraços
Att
Luiz Maia