none
Pegar dados de uma linha no datagrid WPF RRS feed

  • Pergunta

  • Primeiramente é feito o select no banco para saber quais produto aparecerao

    Segue abaixo parte do código onde gero as colunas:

       DataGridTextColumn textColumn = new DataGridTextColumn();

               textColumn.Header = "Produto"; // nome coluna

       textColumn.Binding = new Binding("product"); // campo do sql

                textColumn.Width = 100; // largura da coluna

                dataGrid1.Columns.Add(textColumn);

    Adicionar items no datagrid

    dataGrid1.Items.Add(new
                    {
                        campo1 = sqldatareader[1].ToString(),
                        campo2 = sqldatareader[2].ToString(),
                        campo3 = sqldatareader[3].ToString(),
                        campo4 = sqldatareader[4].ToString(),
                    });

    Sendo isso, gostaria de saber como faço para pegar um campo especifico ao selecionar uma linha no datagrid, para então eu conseguir excluir ou editar essa linha.

    dataGrid1.SelectedItem.ToString();

    traz um resutado com todos os campos e seus dados, "{ campo1 = dados1, campo2 = dados2, campo3 = dados3, campo4 = dados4" }

    mas a intenção é pegar os campos separadamente.


    terça-feira, 12 de junho de 2012 18:06

Todas as Respostas

  •  Olá.

     Eu usei pra pegar o valor e exibir um ContextMenu.

     private void listViewHistorico_SelectedIndexChanged(object sender, EventArgs e)
            {
                //Marca uma linha como selecionada no ListView
                for (int i = 0; i < listViewHistorico.Items.Count; i++)
                {
                    if (listViewHistorico.Items[i].Selected)
                    {
                        indexParaRemocao = i;//Salva o index da linha selecionada
                        contextMenu1.Show(this, new System.Drawing.Point(10, 50));
                        return;
                    }
                }
            }

    Espero ter ajudado. Até mais.

    segunda-feira, 2 de julho de 2012 20:31
  • Do jeito que você esta fazendo não tem como pegar as valores separados você vai ter que pegar o valor e seperar na mão mesmo.

    Você deveria utilizar Orientação a Objeto que ficaria tudo mais facil organizado e limpo.

    1 - Criar uma classe Produto com suas Propriedades

    2 - Efetuar Select no Banco cada linha que retorna Preencher o Objeto Produto criado anteriormente e adicionar em uma ObservableCollection<Produto>

    3 - Pegar o seu datagrid seta ItemsSource dele com a ObservableCollection<Produto> crianda anteriormente

    4 - Depois vc pode pegar o SelectedItem que vai ser um item da lista que dizer um Objeto Produto e acessar a Propriedade que você quer como Nome, Valor e etc.

    Nas colunas o Binding deve ser especificado para o nome das propriedade da Classe Produto.

    quarta-feira, 11 de julho de 2012 14:42