Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
A DataSet classe e as classes relacionadas são tecnologias herdadas do .NET Framework do início dos anos 2000 que permitem que os aplicativos trabalhem com dados na memória enquanto os aplicativos são desconectados do banco de dados. As tecnologias são especialmente úteis para aplicativos que permitem que os usuários modifiquem dados e persistam as alterações no banco de dados. Embora os conjuntos de dados sejam uma tecnologia comprovadamente bem-sucedida, a abordagem recomendada para novos aplicativos .NET é usar o Entity Framework Core. O Entity Framework fornece uma maneira mais natural de trabalhar com dados tabulares como modelos de objeto e tem uma interface de programação mais simples.
Você pode exibir dados para usuários do seu aplicativo associando dados a controles do WPF. Para criar esses controles associados a dados, você pode arrastar itens da janela Fontes de Dados para o Designer do WPF no Visual Studio. Este tópico descreve algumas das tarefas, ferramentas e classes mais comuns que você pode usar para criar aplicativos WPF associados a dados.
Para obter informações gerais sobre como criar controles associados a dados no Visual Studio, consulte Associar controles a dados no Visual Studio. Para obter mais informações sobre a associação de dados do WPF, consulte Visão geral da associação de dados.
Tarefas envolvidas na associação de controles do WPF a dados
A tabela a seguir lista as tarefas que podem ser realizadas arrastando itens da janela Fontes de Dados para o Designer do WPF.
| Tarefa | Mais informações |
|---|---|
| Crie novos controles associados a dados. Associe controles existentes aos dados. |
Associar controles do WPF a um conjunto de dados |
| Crie controles que exibem dados relacionados em uma relação pai-filho: quando o usuário seleciona um registro de dados pai em um controle, outro controle exibe dados filho relacionados para o registro selecionado. | Exibir dados relacionados em aplicativos WPF |
| Crie uma tabela de pesquisa que exibe informações de uma tabela com base no valor de um campo de chave estrangeira em outra tabela. | Criar tabelas de pesquisa em aplicativos WPF |
| Associe um controle a uma imagem em um banco de dados. | Associar controles a imagens de um banco de dados |
Destinos de descarte válidos
Você pode arrastar itens na janela Fontes de Dados apenas para alvos de soltura válidos no WPF Designer. Há dois tipos principais de destinos de descarte válidos: contêineres e controles. Um contêiner é um elemento de interface do usuário que normalmente contém controles. Por exemplo, uma grade é um contêiner, assim como uma janela.
XAML e código gerados
Quando você arrasta um item da janela Fontes de Dados para o Designer do WPF, o Visual Studio gera XAML que define um novo controle associado a dados (ou associa um controle existente à fonte de dados). Para algumas fontes de dados, o Visual Studio também gera código no arquivo code-behind que preenche a fonte de dados com dados.
A tabela a seguir lista o XAML e o código gerados pelo Visual Studio para cada tipo de fonte de dados na janela Fontes de Dados .
| Fonte de dados | Gerar XAML que associa um controle à fonte de dados | Gerar código que preenche a fonte de dados com dados |
|---|---|---|
| Conjunto de dados | Sim | Sim |
| Modelo de Dados de Entidade | Sim | Sim |
| Serviço | Sim | Não |
| Objeto | Sim | Não |
Conjuntos de dados
Quando você arrasta uma tabela ou coluna da janela Fontes de Dados para o designer, o Visual Studio gera XAML que faz o seguinte:
Adiciona o conjunto de dados e um novo CollectionViewSource aos recursos do contêiner para o qual você arrastou o item. O CollectionViewSource é um objeto que pode ser usado para navegar e exibir os dados no conjunto de dados.
Cria uma associação de dados para um controle. Se você arrastar o item para um controle existente no designer, o XAML associará o controle ao item. Se você arrastar o item para um contêiner, o XAML criará o controle selecionado para o item arrastado e ele associará o controle ao item. O controle é criado dentro de um novo Grid.
O Visual Studio também faz as seguintes alterações no arquivo code-behind:
- Cria um Loaded manipulador de eventos para o elemento de interface do usuário que contém o controle. O manipulador de eventos preenche a tabela com dados, recupera o CollectionViewSource dos recursos do contêiner e, em seguida, torna o primeiro item dados o item atual. Se já existir um Loaded manipulador de eventos, o Visual Studio adicionará esse código ao manipulador de eventos existente.
Modelos de dados de entidade
Quando você arrasta uma entidade ou uma propriedade de entidade da janela Fontes de Dados para o designer, o Visual Studio gera XAML que faz o seguinte:
Adiciona uma nova CollectionViewSource aos recursos do contêiner para o qual você arrastou o item. CollectionViewSource é um objeto que pode ser usado para navegar e exibir os dados na entidade.
Cria uma associação de dados para um controle. Se você arrastar o item para um controle existente no designer, o XAML associará o controle ao item. Se você arrastar o item para um contêiner, o XAML criará o controle selecionado para o item arrastado e ele associará o controle ao item. O controle é criado dentro de um novo Grid.
O Visual Studio também faz as seguintes alterações no arquivo code-behind:
Adiciona um novo método que retorna uma consulta para a entidade arrastada para o designer (ou a entidade que contém a propriedade que você arrastou para o designer). O novo método tem o nome
Get<EntityName>Query, onde\<EntityName>está o nome da entidade.Cria um Loaded manipulador de eventos para o elemento de interface do usuário que contém o controle. O manipulador de eventos chama o método
Get<EntityName>Querypara preencher a entidade com dados, recupera o CollectionViewSource dos recursos do contêiner e, em seguida, torna o primeiro item de dados o item atual. Se já existir um Loaded manipulador de eventos, o Visual Studio adicionará esse código ao manipulador de eventos existente.
Serviços
Quando você arrasta um objeto de serviço ou propriedade da janela Fontes de Dados para o designer, o Visual Studio gera XAML que cria um controle associado a dados (ou associa um controle existente ao objeto ou à propriedade). No entanto, o Visual Studio não gera código que preenche o objeto de serviço proxy com dados. Você deve escrever esse código por conta própria. Para obter um exemplo que demonstra como fazer isso, consulte Associar controles WPF a um serviço de dados WCF.
O Visual Studio gera XAML que faz o seguinte:
Adiciona uma nova CollectionViewSource aos recursos do contêiner para o qual você arrastou o item. O CollectionViewSource é um objeto que pode ser usado para navegar e exibir os dados no objeto retornado pelo serviço.
Cria uma associação de dados para um controle. Se você arrastar o item para um controle existente no designer, o XAML associará o controle ao item. Se você arrastar o item para um contêiner, o XAML criará o controle selecionado para o item arrastado e ele associará o controle ao item. O controle é criado dentro de um novo Grid.
Objetos
Quando você arrasta um objeto ou propriedade da janela Fontes de Dados para o designer, o Visual Studio gera XAML que cria um controle associado a dados (ou associa um controle existente ao objeto ou à propriedade). No entanto, o Visual Studio não gera código para preencher o objeto com dados. Você deve escrever esse código por conta própria.
Observação
As classes personalizadas devem ser públicas e, por padrão, ter um construtor sem parâmetros. Elas não podem ser classes aninhadas com um "ponto" na sintaxe. Para obter mais informações, consulte XAML e classes personalizadas para WPF.
O Visual Studio gera XAML que faz o seguinte:
Adiciona uma nova CollectionViewSource aos recursos do contêiner para o qual você arrastou o item. O objeto CollectionViewSource pode ser usado para navegar e exibir os dados no objeto.
Cria uma associação de dados para um controle. Se você arrastar o item para um controle existente no designer, o XAML associará o controle ao item. Se você arrastar o item para um contêiner, o XAML criará o controle selecionado para o item arrastado e ele associará o controle ao item. O controle é criado dentro de um novo Grid.