Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Dicas.NET - Refresh em listbox vinculada a um arrayList

Veja nesta dica, como ter os dados atualizados em todos os controles visuais no form.

 

Refresh em listbox vinculada a um arrayList

Vincular objetos visuais a origens de dados é uma tarefa muito comum. Quando essas origens de dados, tal como datatable, são atualizadas, desejamos que os objetos visuais espelhem a atualização precisamente.

Porém, para que isso aconteça, é necessário que exista uma comunicação entre a origem de dados e os objetos visuais. A origem de dados deve avisar aos objetos visuais que foi atualizada.

Esse aviso é feito através da interface IBindingList. Esta interface possui um evento que é implementado pela origem de dados e consumido pelos objetos visuais. Quando a origem de dados é alterada ela dispara este evento para que os objetos visuais se re-desenhem.

Você já deve ter observado que é possível o vinculo de objetos visuais com arrayLists. Mas tem um problema: um ArrayList não implementa a interface IBindingList. Desta forma quando o arrayList é atualizado, os objetos visuais não são atualizados.

Existem 2 soluções para isso: Podemos criar uma classe que herde de Arraylist e passe a implementar a IBindingList, ou podemos utilizar o BindingContext para fazer um "refresh" na interface visual.

A 1ª solução é definitiva mas bem complexa, então vejamos como funciona a 2ª solução:

Dim c As CurrencyManager
c = Me.BindingContext(p)
c.SuspendBinding()
c.ResumeBinding()

Neste exemplo "p" é um arrayList.

BindingContext é um objeto que controla o vinculo com objetos visuais, normalmente é controlado pelo container. Por isso neste exemplo utilizamos Me (o form) para obter o objeto BindingContext que controla o vínculo do ArrayList p com objetos visuais.

Feito isso chamamos em sequência o SuspendBinding e ResumeBinding. Com isso teremos um refresh nos objetos visuais, passando a exibir o novo conteúdo do arrayList





    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Autor
Tipster .net

Dicas sobre .NET




Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da .net Magazine ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03