Um recurso muito útil do controle DataGrid da WPF é a capacidade de exibir detalhes para cada linha do grid. Neste artigo iremos mostrar o recurso funcionando e analisar o seu funcionamento. |
O controle DatGrid da WPF foi incluído a partir da versão do Visual Studio 2008 (.NET Framework 3.5 SP1) como uma instalação do WPF ToolKit. A partir da versão 4.0 do .NET Framework ele esta integrado ao Visual Studio.
O componente DataGrid pode ser considerado uma tabela composta de linhas e colunas, possuindo muitas propriedades e eventos que permitem a sua configuração de forma fácil e intuitiva. A propriedade ItemsSource é usada para preencher o controle com dados.
Um dos recursos interessantes do DataGrid é poder exibir detalhes de cada linha do grid. Fazemos isso usando a propriedade RowDetailsTemplate para especificar um template para o detalhe das linhas.
Vamos criar um exemplo onde fazemos a vinculação como DataGrid com as propriedades Nome, Nascimento e Detalhes da classe Usuario, onde no DataGrid a propriedade Detalhes será exibida como um detalhe para cada linha quando a mesma for selecionada pelo usuário.
Objetivo
Exibir detalhes em cada linha do controle DataGrid da WPF.
Recursos usados:
Criando o projeto WPF
Abra o Visual Studio 2012 Express for Web e clique em New Project;
Selecione a linguagem Visual C# e o template WPF Application e informe o nome DataGrid_Detalhes_WPF;
Selecione o arquivo MainWindow.xaml que foi criado no projeto e defina o seguinte código neste arquivo:
No código a seguir temos a criação e configuração do controle DataGrid:
<DataGrid Name="dgUsuarios" AutoGenerateColumns="False" FontFamily="Trebuchet MS" FontSize="14">
<DataGrid.Columns>
<DataGridTextColumn Header="Nome" Binding="{Binding Nome}" />
<DataGridTextColumn Header="Data de Nascimento" Binding="{Binding Nascimento}" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<TextBlock Text="{Binding Detalhes}" Margin="15" />
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
|
Definimos neste código:
<DataGrid.Columns>
<DataGridTextColumn
Header="Nome" Binding="{Binding Nome}" />
<DataGridTextColumn
Header="Data de Nascimento" Binding="{Binding Nascimento}" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<TextBlock Text="{Binding
Detalhes}" Margin="15" />
</DataTemplate>
</DataGrid.RowDetailsTemplate>
Vamos agora definir o código no arquivo MainWindow.xaml.cs onde vamos definir a classe Usuario e um construtor que irá criar alguns usuários para exibição no controle DataGrid.
Abra o arquivo MainWindow.xaml.cs e digite o código abaixo neste arquivo:
using System; using System.Collections.Generic; using System.Windows; using System.Windows.Documents;
namespace
DataGrid_Detalhes_WPF |
Neste código criamos a classe Usuario definindo as propriedades : Id, Nome, Nascimento e detalhes que irá exibir o nome e a data de nascimento por extenso do usuário no detalhe da linha.
O construtor MainWindow() inicializa os controles e cria uma lista de usuários vinculando-os ao controle DataGrid (dgUsuarios) usando sua propriedade ItemsSource.
Executando o projeto WPF e selecionando uma linha do DataGrid iremos visualizar o detalhe para linha que exibe o nome e data de nascimento conforme figura a seguir:
Usando a propriedade RowDetailsVisibilityMode podemos alterar esse comportamento.
O valor padrão para essa propriedade é VisibleWhenSelected que exibe o detalhe somente quando a linha for selecionada.
Alterando o seu valor para Visible, e executando o projeto teremos o seguinte resultado:
Agora temos a exibição de todos os detalhes para cada linha.
E se eu quiser exibir uma imagem no detalhe para cada linha ?
Neste caso você terá que aguardar a continuação deste artigo onde eu mostro como fazer isso...
Pegue o projeto completo aqui : DataGrid_Detalhes_WPF.zip
João 8:12 Então Jesus tornou a falar-lhes, dizendo: Eu sou a luz do mundo; quem me segue de modo algum andará em trevas, mas terá a luz da vida.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#