Compartilhar via


Passo a passo: Vinculação de controles WPF para um modelo de dados de entidade

Em essa explicação passo a passo, você criará um aplicativo de WPF que contém controles associados a dados.Os controles são associados aos registros de clientes que são encapsulados em Modelo de Dados de Entidade.Você também irá adicionar botões que os clientes podem usar para navegar pelos registros de clientes e para salvar alterações dos registros.

Essa explicação passo a passo mostra as seguintes tarefas:

  • Criando um aplicativo de WPF e um Modelo de Dados de Entidade que é gerado de dados no banco de dados de exemplo AdventureWorksLT.

  • Criando um conjunto de controles associados a dados arrastando um principal da janela da Fontes de Dados em uma janela WPF designer.

  • Criando os botões que navegam registros de módulos dianteiros e inverso de cliente.

  • Criando um botão que salva alterações nos controles a Modelo de Dados de Entidade e para a fonte de dados subjacente.

    ObservaçãoObservação

    Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações de Visual Studio.

Pré-requisitos

Para completar este passo-a-passo, são necessários os seguintes componentes:

  • Visual Studio

  • Acesso a uma instância em execução de SQL Server ou de SQL Server express que tenha o banco de dados de exemplo AdventureWorksLT anexou-lhe.Você pode baixar o banco de dados AdventureWorksLT de site de CodePlex.

O conhecimento prévio dos seguintes conceitos também é útil, mas não necessário para concluir a explicação passo a passo:

Criando o projeto

Crie um novo projeto de WPF exibir os registros de clientes.

Para criar o projeto

  1. Inicie o Visual Studio

  2. No menu File, aponte para New, e em seguida, clique em Project.

  3. Expanda Visual Basic ou Visual C#, selecione Janelas.

  4. Selecione o modelo de projeto de Aplicativo WPF .

  5. Em a caixa de Nome , o tipo AdventureWorksCustomerEditor e clique em OK.

    O Visual Studio cria o projeto de AdventureWorksCustomerEditor .

Criando um modelo de dados de entidade para o aplicativo

Antes de poder criar controles associados a dados, você deve definir um modelo de dados para seu aplicativo e o adiciona à janela fontes de dados.Em essa explicação passo a passo, você cria Modelo de Dados de Entidade.

Para criar um modelo de dados de entidade

  1. Em o menu de Dados , clique em Adicionar nova fonte de dados para abrir Assistente para Configuração de Fonte de Dados.

  2. Em a página de Escolher um Tipo de Fonte de Dados , clique em Banco de Dados, e clique em Avançar.

  3. Em a página de Escolha um modelo de banco de dados , clique em Modelo de dados de entidade, e clique em Avançar.

  4. Em a página de Escolha o conteúdo modelo , clique em Gere de banco de dados, e clique em Avançar.

  5. Em a página de Escolha a Conexão de Dados , siga um de estes procedimentos:

    • Se uma conexão de dados ao banco de dados de exemplo AdventureWorksLT está disponível na lista suspensa, selecione.

      -  ou  -

    • Clique Nova conexão e criar uma conexão para o banco de dados AdventureWorksLT.

    Certifique-se de que a opção de Salvar configurações de conexão de entidade em App.Config como esteja selecionada, e clique em Avançar.

  6. Em a página de Escolher Objetos do Banco de Dados , expanda Tabelas, selecione a tabela de cliente .

  7. Clique em Concluir.

    O arquivo de Model1.edmx abre no designer.

  8. Crie o projeto.

Definindo a interface do usuário da janela

Adicionar botões à janela alterando XAML no WPF designer.

Para definir a interface do usuário da janela

  1. Em Gerenciador de Soluções, clique duas vezes em MainWindow.xaml.

    A janela é aberta no WPF designer.

  2. Em o modo de XAML o designer, adicione o seguinte código entre as marcas de <Grid> :

    <Grid.RowDefinitions>
         <RowDefinition Height="75" />
         <RowDefinition Height="425" />
    </Grid.RowDefinitions>
    <Button HorizontalAlignment="Left" Margin="22,20,0,24" Name="backButton" Width="75">&lt;</Button>
    <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">&gt;</Button>
    <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>
    
  3. Crie o projeto.

Criando controles associados a dados

Criar controles que exibem registros de clientes arrastando objetos da janela de Fontes de Dados o WPF designer.

Para criar controles associados a dados

  1. No menu Data, clique em Show Data Sources.

  2. Em a janela de Fontes de Dados , clique no menu drop-down para o nó de clientes e selecione Detalhes.

  3. Expanda o nó de clientes .

  4. Para esse exemplo alguns campos não serão exibidos então clique no menu suspenso próximo dos nós e selecione Nenhum:

    • NameStyle

    • PasswordHash

    • PasswordSalt

    • rowGuid

    • ModifiedDate

  5. De a janela de Fontes de Dados , arraste o nó de clientes para a área nos botões.

  6. Em o designer, clique na caixa de texto ao lado do rótulo de Identificação do cliente .

  7. Em a janela de Propriedades , selecione a caixa de seleção próxima à propriedade de IsReadOnly .

  8. Crie o projeto.

Adicione código que permite aos usuários para percorrer os registros de cliente usando botões < e >.

Para permitir que os usuários naveguem entre registros de cliente

  1. Em o designer, clique duas vezes no botão <.

    Visual Studio abre o arquivo code-behind e cria um novo manipulador de eventos de backButton_Click para o evento de Click .

  2. Modifique o manipulador de eventos de Window_Loaded portanto CustomersViewSource e AdventureWorksLTEntities estão fora do método e acessível ao formulário inteiro.Declarar apenas esses globais para o formulário, os atribui dentro do manipulador de eventos de Window_Loaded semelhante ao seguinte:

    Dim CustomersViewSource As System.Windows.Data.CollectionViewSource
    Dim AdventureWorksLTEntities As AdventureWorksCustomerEditor.AdventureWorksLTEntities
    
    
    Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
        CustomersViewSource = CType(Me.FindResource("CustomersViewSource"), System.Windows.Data.CollectionViewSource)
        AdventureWorksLTEntities = New AdventureWorksCustomerEditor.AdventureWorksLTEntities()
        'Load data into Customers. You can modify this code as needed.
        Dim CustomersQuery As System.Data.Objects.ObjectQuery(Of AdventureWorksCustomerEditor.Customer) = Me.GetCustomersQuery(AdventureWorksLTEntities)
        CustomersViewSource.Source = CustomersQuery.Execute(System.Data.Objects.MergeOption.AppendOnly)
    End Sub
    
    private System.Windows.Data.CollectionViewSource customersViewSource;
    private AdventureWorksCustomerEditor.AdventureWorksLTEntities adventureWorksLTEntities;
    
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        adventureWorksLTEntities = new AdventureWorksCustomerEditor.AdventureWorksLTEntities();
        // Load data into Customers. You can modify this code as needed.
        customersViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("customersViewSource")));
        System.Data.Objects.ObjectQuery<AdventureWorksCustomerEditor.Customer> customersQuery = this.GetCustomersQuery(adventureWorksLTEntities);
        customersViewSource.Source = customersQuery.Execute(System.Data.Objects.MergeOption.AppendOnly);
    }
    
  3. Adicione o seguinte código para o manipulador de eventos backButton_Click.

    If CustomersViewSource.View.CurrentPosition > 0 Then
        CustomersViewSource.View.MoveCurrentToPrevious()
    End If
    
    if (customersViewSource.View.CurrentPosition > 0)
        customersViewSource.View.MoveCurrentToPrevious();
    
  4. Retornar ao designer, clique duas vezes no botão >.

    Visual Studio abre o arquivo code-behind e cria um novo manipulador de eventos de nextButton_Click para o evento de Click .

  5. Adicione o seguinte código para o manipulador de eventos nextButton _Click.

    If CustomersViewSource.View.CurrentPosition < CType(CustomersViewSource.View, CollectionView).Count - 1 Then
        CustomersViewSource.View.MoveCurrentToNext()
    End If
    
    if (customersViewSource.View.CurrentPosition < ((CollectionView)customersViewSource.View).Count - 1)
        customersViewSource.View.MoveCurrentToNext();
    

Ponto de Verificação

Compilar e executar o projeto para certificar-se de que o código é compilado, e que você pode navegar em registros de clientes.

Para testar o aplicativo

  • Pressione F5.

    As compilações e o é executado do aplicativo.Verifique o seguinte:

    • Os dados do cliente são exibidos.

    • Você pode clicar nos botões > ou < para navegar em registros de clientes.

Salvar alterações aos registros de cliente

Adicione código que permite aos usuários salvar as alterações aos registros de cliente usando o botão de Salvar Alterações .

Para adicionar a capacidade de salvar alterações aos registros de cliente

  1. Em o designer, clique duas vezes no botão de Salvar Alterações .

    Visual Studio abre o arquivo code-behind e cria um novo manipulador de eventos de saveButton_Click .

  2. Adicione o seguinte código para o manipulador de eventos saveButton_Click.

    AdventureWorksLTEntities.SaveChanges()
    
    adventureWorksLTEntities.SaveChanges();
    

Testando o aplicativo

Compilar e executar o aplicativo para verificar que exibe os registros de clientes e permite que você salve as alterações a eles.

Para testar o aplicativo

  1. Pressione F5.

  2. Editar um dos registros de clientes e clique em Salvar Alterações.

  3. Feche o aplicativo e em seguida, inicie o aplicativo novamente pressionando F5.

  4. Navegue para o registro de cliente que você tiver sido alterado, e verifique que a alteração persistir.

  5. Feche o aplicativo.

Próximas etapas

Após concluir essa explicação passo a passo, você pode executar as seguintes tarefas relacionadas:

Consulte também

Tarefas

Como: vincular controles WPF dados em Visual Studio

Passo a passo: Vinculação de controles WPF em um Dataset

Passo a passo: Vinculação de controles WPF para um serviço de dados do WCF

Conceitos

Controles do WPF de ligação a dados em Visual Studio

WPF e Silverlight Designer Overview

Visão geral de vinculação de dados

Outros recursos

Introducing the Entity Framework