Preencher ComboBox com LINQ

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

Vinicius Climaco

Curtidas 0

Respostas

Luiz Maia

Luiz Maia

02/03/2010

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    
GOSTEI 0
Vinicius Climaco

Vinicius Climaco

02/03/2010

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.
GOSTEI 0
Luiz Maia

Luiz Maia

02/03/2010

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
GOSTEI 0
Luiz Maia

Luiz Maia

02/03/2010

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

Luiz Maia

02/03/2010

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
GOSTEI 0
POSTAR