VB
.NET - DataBinding - DataTable e CurrencyManager (dica rápida)
Hoje veremos como criar um DataTable via código, exibir os registros em um DataGridView e usar o objeto CurrencyManager para realizar a navegação pelos registros.
Do que você vai precisar ?
Abra o Visual Studio 2012 Express for desktop e crie um novo projeto do tipo Windows Forms Application com o nome DataGridView_CurrencyManager;
No formulário form1.vb inclua os seguintes controles a partir da ToolBox:
O leiaute do formulário é mostrado a seguir:
![]() |
Vamos definir uma variável privada referente ao DataTable - dt - que iremos criar e outra referente a classe CurrencyManager. Esta classe gerencia uma lista de objetos vinculados e deriva da classe BindingManagerBase. Você usa o BindingContext para retornar um CurrencyManager ou PropertyManager.
Private
dt As New DataTable
Private cma As CurrencyManager = DirectCast(BindingContext(dt),
CurrencyManager)
Vamos ao código:
1- No evento Load do formulário é onde vamos carregar o datatable com dados e exibir os registros no datagridview:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'define as colunas
dt.Columns.Add("Nome")
dt.Columns.Add("Cidade")
dt.Columns.Add("Estado")
'preenche o datatable
dt.LoadDataRow(New Object() {"Jose Carlos", "Brasilia", "Distrito Federal"}, True)
dt.LoadDataRow(New Object() {"Miriam Estela", "Goiânia", "Goiás"}, True)
dt.LoadDataRow(New Object() {"Janice Rachel", "Lins", "São Paulo"}, True)
dt.LoadDataRow(New Object() {"Yuri Siqueira", "Alfenas", "Minas Gerais"}, True)
dt.LoadDataRow(New Object() {"Bianca Rodrigues", "Londrina", "Paraná"}, True)
dt.LoadDataRow(New Object() {"Paulo Clemente", "Salvador", "Bahia"}, True)
dt.LoadDataRow(New Object() {"Marcos Bueno Lima", "Cabo Frio", "Rio de Janeiro"}, True)
dt.LoadDataRow(New Object() {"Maria Souza", "Santos", "São Paulo"}, True)
'preenche o datagridview
DataGridView1.DataSource = dt
'exibe os valores nas labels
Label1.DataBindings.Add("Text", dt, "Nome")
Label2.DataBindings.Add("Text", dt, "Cidade")
Label3.DataBindings.Add("Text", dt, "Estado")
Label4.Text = "0"
AddHandler cma.CurrentChanged, AddressOf CurrentChanged
End Sub
|
Usamos o método LoadDataRow para localizar e atualizar uma linha do datatable. Esse método localiza e atualiza uma linha específica. Se nenhuma linha correspondente for encontrada, uma nova linha será criada usando os valores fornecidos conforme fizemos no código.
2- No evento Click dos botões de comando temos o código que usa o CurrencyManager e sua propriedade Position para obter a posição atual da lista e assim permitira navegar pelos registros :
Private Sub btnAnterior_Click(sender As Object, e As EventArgs) Handles btnAnterior.Click
If cma.Position > 0 Then
cma.Position -= 1
End If
End Sub
Private Sub btnProximo_Click(sender As Object, e As EventArgs) Handles btnProximo.Click
If cma.Position < dt.Rows.Count + 2 Then
cma.Position += 1
End If
End Sub
|
Em um lista de itens podemos visualizar somente um item ou a lista inteira, e, para determinar qual o item será visto definimos a propriedade Position entre o número 0 (o início da lista) e o fim da lista (Count-1).
3- No delegate CurrentChanged temos a exibição da posição atual no controle Label:
Private Sub CurrentChanged(ByVal sender As Object, ByVal e As EventArgs)
Label4.Text = DirectCast(sender, CurrencyManager).Position.ToString
End Sub
|
"Delegate" ou Delegado é o nome usado para descrever um procedimento em VB.NET que permite a você controlar o código que atualmente manipula um evento. (Como um evento Change , Click , Load , etc.). Um delegate é então uma classe que pode manipular uma referência um método.
Executando a aplicação teremos o resultado abaixo:
![]() |
Pegue o projeto completo
aqui: DataGridView_CurrencyManager.zip
Romanos 7:14 Porque bem sabemos que a lei é espiritual; mas eu sou carnal, vendido sob o pecado.
Romanos 7:15 Pois o que faço, não o entendo; porque o que quero, isso não pratico; mas o que aborreço, isso faço.
Romanos 7:16 E, se faço o que não quero, consinto com a lei, que é boa.
Romanos 7:17 Agora, porém, não sou mais eu que faço isto, mas o pecado que habita em mim.
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#