728x90 AdSpace

15 de jun. de 2008

Populando Controles de Dados

Neste artigo iremos abordar a exibição de dados em controles na nossa aplicação. Utilizaremos formas simples de recuperação de dados.

Controle DataGrid

O controle inicial utilizado para exibir dados em nossa aplicação será o DataGrid. Para possibilitar o uso deste controle é necessario habilitar a referencia ao assembly dos Silverlight Data Controls:

   xmlns:my="clr-namespace:System.Windows.Controls;
             assembly=System.Windows.Controls.Data"

 

O DataGrid nos permite configurar explicitamente as declarações de colunas e os tipos a serem exibidos. Uma facilidade trazida pelo DataGrid é que podemos simplesmente definir a propriedade “AutoGenerateColumns=true” para que ele por reflexão da fonte dos dados nos crie as colunas baseado no esquema dos objetos fonte.

Para demonstrar isto iremos criar uma classe chamada CD com a definição mostrada a seguir: 

ClassDiagram1

public class CD
{
        public string NomeAlbum { get; set; }
        public string NomeArtista { get; set; }
        public string URLImagem { get; set; }
        public int Pontos { get; set; }
}

Desta forma podemos gerar um método que retorna um de vetor de CDs:

public static CD[] GerarAlbuns()
{
    return new CD[] 
    {   
        new CD() { NomeAlbum = "Album 1", NomeArtista = "Artista 1" }, 
        new CD() { NomeAlbum = "Album 2", NomeArtista = "Artista 2" },
        new CD() { NomeAlbum = "Album 3", NomeArtista = "Artista 3" },
        new CD() { NomeAlbum = "Album 4", NomeArtista = "Artista 4" },
        new CD() { NomeAlbum = "Album 5", NomeArtista = "Artista 5" },
    };
}

Agora que temos uma fonte de dados preparada, vamos preparar o projeto para exibir estes dados na tela para nós. Para facilitar esta exibição usaremos o DataGrid com a propriedade “AutoGenerateColumns=true”. O código a seguir deve ser utilizado na Page.xaml

<UserControl xmlns:my="clr-namespace:System.Windows.Controls;
                       assembly=System.Windows.Controls.Data"  
             x:Class="MeuSilverlight.Page"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             Width="640" Height="480" Loaded="UserControl_Loaded">
    <my:DataGrid x:Name="GridAlbuns" Grid.Row="1" Margin="5" 
                 AutoGenerateColumns="True">
        
    </my:DataGrid>
</UserControl>
 

Vale notar que o evento Loaded já está definindo a chamada pra “UserControl_Loaded e é nesta chamada que efetuaremos a passagem dos dados do método “GerarAlbuns()” para o DataGrid que no nosso projeto tem seu nome definido como GridAlbuns.

Para exibir os dados do método “GerarAlbuns()” no DataGrid GridAlbuns definimos seu “ItemsSource” utilizando o seguinte código no arquivo Page.xaml.cs:

private void UserControl_Loaded(object sender, RoutedEventArgs e)
{   
    GridAlbuns.ItemsSource = CD.GerarAlbuns();
}

O resultado que obtemos será:

image

Populando Controles de Dados
  • Blogger Comments
  • Facebook Comments
Top