C# - Converter List<T> para DataTable - II
Neste artigo veremos como converter uma lista genérica tipada para um DataTable na linguagem C#. |
Na primeira parte do artigo já convertemos a lista tipada para um DataTable e para completar veremos como selecionar um item do DataGridView e exibir em outro formulário do projeto.
Inclua um novo formulário Form2 no projeto para exibir os detalhes do Produto selecionado.
Neste formulário inclua os controles:
Vamos passar os dados do produto selecionado no DataGridView do formulário Form1 para o Form2 via construtor do formulário.
Assim o formulário Form2 vai receber o código do produto e vai usar o método GetProdutoCodigo() da classe DataService para obter o produto.
A seguir, usando o método PopulaForm() os dados são exibidos no formulário:
public partial class Form2 : Form
{
Produto produto;
public Form2(int codigo)
{
InitializeComponent();
produto = DataService.getProdutoCodigo(codigo-1);
PopulaForm(produto);
}
private void PopulaForm(Produto produto)
{
txtCodigo.Text = produto.ProdutoId.ToString();
txtNome.Text = produto.Nome;
txtPreco.Text = produto.Preco.ToString();
}
}
|
Agora para completar vamos definir o código no formulário Form1 que seleciona o produto.
Vamos usar o evento CellDoubleClick do DataGridView, e, assim basta o usuário clicar duas vezes no item do grid que deseja exibir.
Obtemos o código do item da lista, que é o valor da primeira célula da linha, e a seguir criamos uma instãncia de Form2() passando o código do produto:
private void DgvDados_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
int codigo = (int)dgvDados.Rows[e.RowIndex].Cells[0].Value;
Form2 frm2 = new Form2(codigo);
frm2.Show();
}
|
Executando o projeto teremos o seguinte resultado:
Vemos assim a lista de objetos Produto sendo exibida no DataGridView após ser convertida para um DataTable e a seleção do usuário exibindo os detalhes do produto no formulário Form2.
Pegue o código completo do projeto aqui: WF_Lista_DataTable.zip
"Amo ao
SENHOR, porque ele ouviu a minha voz e a minha súplica.
Porque inclinou a mim os seus ouvidos; portanto, o invocarei enquanto viver."
Salmos 116:1,2
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Padrão de Projeto - DAO - Data Access Object - Macoratti.net
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net