Esse artigo faz parte da revista WebMobile edição 16. Clique aqui para ler todos os artigos desta edição

imagem.JPG

: 0cm 0cm 0pt;">Veja como adicionar funcionalidades ao DataGrid do.NET Compact Framework

 

Hoje em dia é preciso que o software tenha um diferencial que o coloque em posição de destaque no mercado. Nesse contexto é preciso trazer para os usuários informações precisas e ricamente trabalhadas. No ambiente de automação de força de vendas, os equipamentos com Windows Mobile estão ganhando cada vez mais espaço e a facilidade de desenvolvimento para essa plataforma também constitui um fator interessante e decisivo.

No mundo do desenvolvimento móvel, o .NET Compact Framework atende em quase todos os aspectos, mas por ser muito compacto devido à falta de espaço nos dispositivos móveis, acaba por eliminar muitos dos recursos presentes na versão desktop e isso cria a necessidade de melhorarmos e aperfeiçoarmos suas funcionalidades.

Veja então, por exemplo, uma aplicação de força de vendas que precise mostrar as informações financeiras de um determinado cliente em uma grade. Como então modificar essa grade para diferenciar as situações dos títulos dos clientes, de maneira a facilitar a operação do software?

Nesse caso, precisamos modificar as funcionalidades padrão do DataGrid, acrescentando recursos que permitem controle total sobre cada informação apresentada, em cada célula, e é isso que vamos tratar neste artigo.

 

Endentendo o DataGrid

Você pode estar pensando que existe um evento que controla a pintura individual de cada célula, como existe na versão desktop, mas infelizmente não temos esse tipo de controle nos dispositivos móveis, o que podemos fazer é trabalhar com a propriedade TableStyles, que serve para modificar a aparência do DataGrid, adicionando nossas colunas personalizadas, através das classes que criaremos logo a seguir.

 

Iniciando o projeto da aplicação

Para iniciarmos, crie um novo projeto SmartDevice>Device Application, com o nome de “DataGridColor” (Figura 1).

 

Figura 1. Criando o projeto no Visual Studio 2005

 

Criando a classes base para personalizar as colunas

Nesse momento desenvolveremos uma classe, que conterá todo o código necessário para personalizarmos as colunas. A partir dessa classe, poderemos criar diversos tipos de colunas personalizadas para nossos projetos, conforme demonstraremos aqui.

Vamos então adicionar uma nova classe ao projeto. Para isso, acesse o menu Project>Add Class e adicione uma classe com o nome de “DataGridCustomColumnBase.cs” (Figura 2).

 

Figura 2. Adicionando a classe base

 

Vamos então escrever o código para a classe base, colocando as referências para os namespaces e definindo as variáveis internas da classe, conforme a Listagem 1.

 

Listagem 1. Iniciando a construção da classe

01. using System;

02. using System.Collections.Generic;

03. using System.Text;

04. using System.Windows.Forms;

05. using System.Drawing;

06. using System.Reflection;

07.

08. namespace DataGridColor

09. {

10.    public class DataGridCustomColumnBase :

         DataGridTextBoxColumn

11.    {

12.      private StringFormat _stringFormat = null;

13.

14.      private DataGrid _owner = null;

15.      private int _columnNumber = -1;

16.

17.      private Control _hostedControl = null;

18.      private Rectangle _bounds = Rectangle.Empty;

19.

20.      private bool _readOnly = false;

21.

22.      private Color _alternatingBackColor =

           SystemColors.Window;

23.      private Color _foreColor =

           SystemColors.WindowText;

24.      private Color _backColor =

           SystemColors.Window;

25.      private int _rowNumber = 0;

26.      private string _text = "";

27.       

28.      public delegate void

           DataGridTextBoxColumnEventHandler(object

29.               sender, DataGridTextBoxColumnEventArgs e);

30.      public event DataGridTextBoxColumnEventHandler     

31.               OnDrawColumnCell;

32.   }

33. }

 

Primeiramente, a classe deverá herdar as propriedades da classe padrão DataGridTextBoxcolumn, para que se comporte como um campo do DataGrid (linha 10), em seguida definimos as variáveis para: formatação da coluna (linha 12), DataGrid que conterá a coluna (linha 14), número da coluna no Grid (linha 15), o controle que será utilizado em caso de edição da coluna (linha 17), as dimensões da célula (linha 18), se poderemos editar a célula ou não (linha 20), cor alternada que será mostrada nas linhas da grade (linha 22), cor da fonte da célula (linha 23), cor do fundo da célula (linha 24), número da linha no Grid (linha 25), texto contido na célula (linha 26).

Para acessarmos a coluna antes que ela seja desenhada, utilizaremos um evento (linhas 28 a 31). Esse é criado usando o conceito de delegate da plataforma .NET, onde desenvolvemos a classe de evento (DataGridTextBoxColumnEventHandler), que será utilizada no OnDrawColumnCell (linha 31). A classe de evento será criada no mesmo arquivo da classe principal.

 

Nota: Delegate é um ponteiro para uma função vinculada a um evento que será executado internamente pela classe, por exemplo: o Click de um botão executa o código que está relacionado a esse evento e isso só ocorre caso o botão seja clicado.

 

Criando as propriedades da classe

Para que possamos modificar o comportamento da classe definiremos várias propriedades, que permitirão acessar as variáveis internas da classe. O código pode ser observado nas Listagens 2 e 3.

 

Listagem 2. Propriedades da classe

01. public Color ForeColor

02. {

03.   get

04.   {

05.      return _foreColor;

06.   }

07.   set

08.   {

...

Quer ler esse conteúdo completo? Tenha acesso completo