Partilhar via


Modos de exibição de dados no controle DataGridView do Windows Forms

O controle DataGridView pode exibir dados em três modos distintos: vinculado, não acoplado e virtual. Escolha o modo mais adequado com base nas suas necessidades.

Desvinculado

O modo desvinculado é adequado para exibir quantidades relativamente pequenas de dados geridos programaticamente. Você não liga o controlo DataGridView diretamente a uma fonte de dados como no modo vinculado. Em vez disso, você deve preencher o controle por conta própria, normalmente usando o método DataGridViewRowCollection.Add.

O modo independente pode ser particularmente útil para dados estáticos, apenas de leitura, ou quando deseje fornecer o seu próprio código que interage com um armazenamento de dados externo. No entanto, quando você deseja que os usuários interajam com uma fonte de dados externa, normalmente usará o modo vinculado.

Para um exemplo que utiliza um DataGridViewsomente leitura e não acoplado, consulte Como: Criar um controlo DataGridView do Windows Forms não acoplado.

Encadernado

O modo vinculado é adequado para gerir dados usando a interação automática com o armazenamento de dados. Você pode anexar o controle DataGridView diretamente à sua fonte de dados definindo a propriedade DataSource. Quando o controlo é vinculado a dados, as linhas de dados são inseridas e retiradas sem a necessidade de gerenciamento explícito da sua parte. Quando a propriedade AutoGenerateColumns estiver true, cada coluna em sua fonte de dados fará com que uma coluna correspondente seja criada no controle. Se preferir criar suas próprias colunas, você pode definir essa propriedade como false e usar a propriedade DataPropertyName para vincular cada coluna ao configurá-la. Isso é útil quando você deseja usar um tipo de coluna diferente dos tipos gerados por padrão. Para obter mais informações, consulte Tipos de Coluna no controlo DataGridView do Windows Forms.

Para obter um exemplo que utiliza um controlo de DataGridView vinculado, consulte Passo a Passo: Validação de Dados no controlo DataGridView do Windows Forms.

Você também pode adicionar colunas não acopladas a um controle DataGridView no modo acoplado. Isso é útil quando você deseja exibir uma coluna de botões ou links que permitem que os usuários executem ações em linhas específicas. Também é útil exibir colunas com valores calculados a partir de colunas acopladas. Você pode preencher os valores de célula para colunas calculadas em um manipulador para o evento CellFormatting. No entanto, se tu estiveres a usar um DataSet ou DataTable como fonte de dados, podes querer usar a propriedade DataColumn.Expression para criar uma coluna calculada. Nesse caso, o controle DataGridView tratará a coluna calculada como qualquer outra coluna na fonte de dados.

Não há suporte para ordenar por colunas não vinculadas no modo vinculado. Se você criar uma coluna não acoplada no modo acoplado que contenha valores editáveis pelo usuário, deverá implementar o modo virtual para manter esses valores quando o controle for classificado por uma coluna acoplada.

Virtuais

Com o modo virtual, você pode implementar suas próprias operações de gerenciamento de dados. Isso é necessário para manter os valores de colunas não vinculadas no modo vinculado quando o controlo é ordenado por colunas vinculadas. O principal uso do modo virtual, no entanto, é otimizar o desempenho ao interagir com grandes quantidades de dados.

Você anexa o controle DataGridView a um cache que você gerencia, e o seu código controla quando as linhas de dados são empurradas e puxadas. Para manter o espaço ocupado pela memória pequeno, o cache deve ser semelhante em tamanho ao número de linhas exibidas atualmente. Quando o usuário rola novas linhas para a exibição, seu código solicita novos dados do cache e, opcionalmente, libera dados antigos da memória.

Ao implementar o modo virtual, você precisará controlar quando uma nova linha é necessária no modelo de dados e quando reverter a adição da nova linha. A implementação exata desta funcionalidade dependerá da implementação do modelo de dados e da semântica de transação do modelo de dados; se o escopo de confirmação está no nível da célula ou da linha.

Para obter mais informações sobre o modo virtual, consulte o modo virtual no controlo DataGridView do Windows Forms. Para obter um exemplo que mostra como usar eventos de modo virtual, consulte Passo a passo: Implementando o modo virtual no controle DataGridView do Windows Forms.

Ver também