C#  - ListView : Preenchendo com dados e Exportando para Texto e Excel - II


 Neste artigo vou mostrar como preencher um controle ListView com dados usando o Entity Framework, como exibir os dados selecionados em um linha do ListView e como exportar os dados para o formato texto e Excel.

Continuando a primeira parte do artigo vou mostrar como selecionar um item no ListView e exibir os detalhes para outro formulário.

Vamos lá...

Recursos Usados

Incluindo um novo formulárioi no projeto

Abra o projeto C_ListView1 criado no artigo anterior no VS 2015 Community;

No menu Project clique em Add Windows Forms e aceite o nome Form2.cs.

Neste formulário inclua os controles :

Disponha os controles conforme o leiaute da figura abaixo:

Vinculando os controles TextBox do formulário a fonte de dados via BindingSource

Vamos agora vincular cada controle TextBox via databinding usando o BindingSource com a nossa fonte de dados.

Selecione cada caixa de Texto e na janela de propriedades clique em DataBindings e em Text selecione a respectiva propriedade do BindingSource;

Repita essa operação para cada caixa de texto vinculando a respectiva propriedade.

Selecionando um item do ListView e exibindo os dados no segundo formulário

Agora vamos definir no evento ItemActivate do ListView - lvwDados - no formulário Form1.cs o código que vai permitir exibir os dados da linha selecionada em outro formulário.

Inclua neste evento do ListView o código abaixo:

     private async void lvwDados_ItemActivate(object sender, EventArgs e)
        {
            if(lvwDados.SelectedItems.Count>0)
            {
                ListViewItem item = lvwDados.SelectedItems[0];
                using (NorthwindEntities db = new NorthwindEntities())
                {
                    string produtoId = item.SubItems[0].Text;
                    Product p = await db.Products.FindAsync(Convert.ToInt32(produtoId));
                    if(p!=null)
                    {
                        using (Form2 frm = new Form2(p))
                        {
                            frm.ShowDialog();
                        }
                    }
                }
            }
        }

Vamos entender o código:

1- Verificamos se foi selecionando um item no ListView :  if(lvwDados.SelectedItems.Count>0)

2- Obtemos o item selecionado - ListViewItem item = lvwDados.SelectedItems[0];

3- Criamos uma instância do modelo de entidades - using (NorthwindEntities db = new NorthwindEntities())

4- Obtemos o código do produto -  string produtoId = item.SubItems[0].Text;

5- Localizamos o produto com o código selecionado -  db.Products.FindAsync(Convert.ToInt32(produtoId));

6- Criamos uma instância do formulário Form2 passando o produto selecionado no seu construtor - Form2 frm = new Form2(p)

7- Exibimos a nova instância do formulário Form2 - frm.ShowDialog();

Preparando o formulário Form2 para receber os produtos e realizar o databinding

Vamos alterar o construtor do formulário Form2 para receber o produto recebido e realizar o databinding.

Inclua o código abaixo no construtor do formulário Form2:

        public Form2(Product p)
        {
            InitializeComponent();
            productBindingSource.DataSource = p;
        }

Agora estamos pronto para testar o projeto.

Executando o projeto, preenchendo o ListView e selecionando um item iremos obter o seguinte resultado:

Na próxima parte do artigo veremos como exportar o conteúdo do Listview para o formato texto.

Jesus dizia, pois, aos judeus que criam nele: Se vós permanecerdes na minha palavra, verdadeiramente sereis meus discípulos;
E conhecereis a verdade, e a verdade vos libertará.

João 8:31,32

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti