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

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

Não associado

O modo não associado é adequado para exibir quantidades de dados relativamente pequenas que você gerencia programaticamente. Você não anexa o DataGridView controle diretamente a uma fonte de dados como no modo acoplado. Em vez disso, você deve preencher o controle sozinho, normalmente usando o DataGridViewRowCollection.Add método.

O modo não associado pode ser particularmente útil para dados estáticos, somente leitura ou quando você desejar fornecer seu próprio código que interage com um armazenamento de dados externo. Quando quiser que os usuários interajam com uma fonte de dados externa, no entanto, você normalmente usará o modo associado.

Para obter um exemplo que usa um unbound DataGridViewsomente leitura , consulte Como: Criar um controle DataGridView do Windows Forms não acoplado.

Bound

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

Para obter um exemplo que usa um controle acoplado DataGridView , consulte Demonstra Passo a passo: Validando dados no controle DataGridView do Windows Forms.

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

Não há suporte para a classificação por colunas não associadas no modo associado. Se criar uma coluna não associada no modo associado que contenha os valores editáveis pelo usuário, você deverá implementar o modo virtual para manter esses valores quando o controle for classificado por uma coluna associada.

Máquina

Com o modo virtual, você pode implementar suas próprias operações de gerenciamento de dados. Isso é necessário para manter os valores das colunas não associadas no modo associado quando o controle for classificado por colunas associadas. No entanto, o uso principal do modo virtual é otimizar o desempenho ao interagir com grandes quantidades de dados.

Você anexa o DataGridView controle a um cache que gerencia e controla quando as linhas de dados são enviadas e extraídas. Para manter o volume de memória pequeno, o cache deve ser semelhante em tamanho ao número de linhas exibidas atualmente. Quando o usuário rola novas linhas no modo de exibição, seu código solicita novos dados do cache e, como alternativa, libera os dados antigos da memória.

Quando estiver implementando o modo virtual, você precisará controlar quando uma nova linha for necessária no modelo de dados e o momento para reverter a adição da nova linha. A implementação dessa funcionalidade exata 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 Como implementar o modo virtual no controle DataGridView dos Windows Forms. Para obter um exemplo que mostra como usar os eventos de modo virtual, consulte Instruções passo a passo: implementando o modo virtual no controle DataGridView dos Windows Forms.

Confira também