WPF - Exibindo dados no ListView


Nesta dica eu mostro como acessar um banco de dados SQL Server (estou usando o SQL Server 2005 Express Edition) e exibir as informações em um controle ListView do WPF - Windows Presentation Foudation.

Eu estou usando os recursos do databinding da WPF; para detalhes sobre o assunto veja nas referências os meus artigos a respeito.

Abra o Visual Basic 2008 Express Edition e crie um novo projeto do tipo WPF Application com o nome BindingListView:

Nota: Eu estou usando uma versão do VB 2008 Express na qual apliquei o pacote de tradução para o português.

Será criado um projeto WPF e no descritor do WPF você deverá visualizar a área de desenho onde são usados os controles WPF e a janela de código XAML. Neste exemplo eu vou usar a janela de código XAML para criar a interface do projeto.

Para este exemplo eu vou acessar a tabela Products do banco de dados Northwind.mdf e exibir o nome do produto e seu preço.

Então digite o código em negrito abaixo na janela de código XAML entre os elementos <Grid></Grid>:

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Relação de Produtos" Height="300" Width="300">
    <Grid>
        <ListView Margin="25,22,17,17" Name="ListView1" Background="WhiteSmoke">
            <ListView.View>
                <GridView >
                    <GridViewColumn Header ="Produto" DisplayMemberBinding="{Binding ProductName}" Width="100"></GridViewColumn>
                    <GridViewColumn Header ="Preço" DisplayMemberBinding="{Binding UnitPrice}" Width="100"></GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>
    </Grid>
</Window>

Agora temos que incluir o código no arquivo code-behind window1.xaml.vb para acessar a tabela e retornar os dados que serão vinculados no componente ListView.

XAML (pronuncia-se zamel) é a linguagem usada para criar interfaces de usuário no WPF.
Ela é baseada na linguagem de marcação XML e é parecida com HTML. 
Além de criar interfaces  ricas para o usuário com XAML podemos também representar dados como um array de strings 
ou uma instância de um objeto.
A linguagem XAML pode ser ou compilada ou interpretada dependendo em como ela será usada. 

Abaixo temos o código do arquivo code-behind:

Imports System.Data
Imports System.Data.SqlClient

Class Window1

    Public Sub New()
        InitializeComponent()
        Dim dt As New DataTable

        Dim strConn As String = "Server = .\sqlexpress;Database = NorthWind; Integrated Security = SSPI;"
        Dim conn As New SqlConnection(strConn)
        Dim da As New SqlDataAdapter("Select ProductName, UnitPrice from Products", conn)
        da.Fill(dt)
        ListView1.DataContext = dt
        Dim bind As New Binding
        ListView1.SetBinding(ListView.ItemsSourceProperty, bind)
    End Sub

End Class

Executando o projeto teremos o resultado mostrado a seguir:

Aguarde mais dicas sobre WPF.

Eu sei é apenas WPF, mas eu gosto...

Referências:


José Carlos Macoratti