Fórum Preencher ComboBox com LINQ #16709

02/03/2010

0

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.
Vinicius Climaco

Vinicius Climaco

Responder

Posts

02/03/2010

Luiz Maia

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    
Responder

Gostei + 0

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.
Responder

Gostei + 0

02/03/2010

Luiz Maia

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
Responder

Gostei + 0

11/03/2010

Luiz Maia

E ai Vinicius, resolveu?   Aguardo...   Abraços Att Luiz Maia
Responder

Gostei + 0

16/03/2010

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
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar