Compartilhar via


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

Esta explicação passo a passo, você irá criar umaplicativo do WPFque contém controleslimite dados. Os controles são limite aos registros de produtos que são encapsulados em um dataset.Você também irá adicionar botões para navegar em produtos e salvar as alterações em registros de produtos.

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

  • Criando umaplicativo do WPFe um dataset que é gerado a partir de dados no banco de dadosdo exemplo de AdventureWorksLT.

  • Criando um conjunto de controleslimite dados - arrastando uma tabela de dados a partir de Fontes de dadosjanela para uma janela no WPF Designer.

  • Criando botões navegar encaminhar e para trás através de registros de produtos.

  • Criar um botão que salva as alterações feitas pelos usuários para os registros de produto para a tabela de dados e fonte de dadossubjacente.

    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 ou SQL Express tem de exemplo AdventureWorksLT banco de dados anexado a ele.Você pode baixar o banco de dados de AdventureWorksLT da site CodePlex Web.

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

Criando o projeto

Crie um novoprojetodo WPF. O projeto irá exibir os registros de produto.

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#**e selecione Windows.

  4. Selecione o aplicativo WPF modelodeprojeto.

  5. No nome , digite AdventureWorksProductsEditor e clique em OK.

    Visual Studio cria o AdventureWorksProductsEditorprojeto.

Criando um Dataset para o aplicativo.

Antes de você poder criar dados - controleslimite , você deve definir um modelo de dados para o seu aplicativo e adicioná-lo para o Fontes de dadosjanela. Nesta explicação, você criar um dataset para usar como modelo de dados.

Para criar um dataset

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

    A janela Data Sources é aberta.

  2. Na janela Data Sources, clique em Add New Data Source.

    O Data Source Configuration Wizard é aberto.

  3. Sobre o Choose a Data Source Type página, selecione banco de dadose, em seguida, clique em próximo.

  4. Sobre o Escolher um modelo de banco de dados página, selecione Datasete, em seguida, clique em próximo.

  5. Sobre o Choose Your Data Connection de página, selecione uma das seguintes opções:

    • Se uma conexão de dados de exemplo o AdventureWorksLT banco de dados estiver disponível na lista suspensa, selecione-o e, em seguida, clique em próximo.

      -  ou  -

    • Clique em Nova conexão e criar uma conexão com o banco de dadosdo AdventureWorksLT.

  6. No Save the Connection String no arquivo de configurar o aplicativo página, selecione o Sim, salvar a conexão como caixa de seleçãoe clique próximo.

  7. Sobre o Escolha seus objetos de banco de dados de página, expandirtabelase, em seguida, selecione o produto (SalesLT) tabela.

  8. Clique em Concluir.

    Visual Studio adiciona um novo arquivo de AdventureWorksLTDataSet.xsd para o projetoe adiciona um correspondente AdventureWorksLTDataSet item para o Fontes de dadosjanela. O arquivo de AdventureWorksLTDataSet.xsd define um dataset tipado chamado AdventureWorksLTDataSet e um TableAdapter chamado ProductTableAdapter.Posteriormente nesta explicação passo a passo, você usará o ProductTableAdapter para preencher o dataset com dados e salvar as alterações de volta para o banco de dados.

  9. Crie o projeto.

Editando o método de preenchimento padrão do TableAdapter

Para preencher o dataset com dados, use o Fillo método da ProductTableAdapter. Por padrão, o Fill método preenche o ProductDataTable na AdventureWorksLTDataSet com todas as linhas de dados da tabela Produtos. Você pode modificar esse método para retornar apenas um subconjunto das linhas.Para esta explicação, modificar o Fill método para retornar apenas linhas de produtos com fotos.

Para carregar as linhas de produto com fotos

  1. Em Solution Explorer, duas vezes no arquivo AdventureWorksLTDataSet.xsd.

    O Dataset designer abre.

  2. No designer, clique com o botão direito do Fill,GetData() consulta e selecione Configure.

    O TableAdapter Configuration Wizard abre.

  3. No Enter uma instrução SQL de página, adicione a seguinte cláusula WHERE após o SELECTde demonstrativo na caixa de texto.

    WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'
    
  4. Clique em Concluir.

Definindo a Interface de usuário

Adicione vários botões na janela , modificando o XAML no WPF Designer.Posteriormente nesta explicação passo a passo, você irá adicionar código que permite aos usuários rolar através de e salvar as alterações nos registros de produtos usando esses botões.

Para definir ainterface do usuárioda janela

  1. Em Solution Explorer, clique duas vezes em MainWindow. XAML.

    A janela é aberta no WPF Designer.

  2. No XAML exibir do designer, adicione o seguinte código entre o <Grid> marcas:

    <Grid.RowDefinitions>
        <RowDefinition Height="75" />
        <RowDefinition Height="625" />
    </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 ligados a dados

Criar controles que exibem os registros de cliente , arrastando o produto tabela da Fontes de dadosjanela para o WPF Designer.

Para criar dados - controleslimite

  1. No Fontes de dados janela, clique no menu suspenso para o produto nó e selecione detalhes.

  2. Expanda o produto nó.

  3. Neste exemplo, alguns campos não serão exibidos no menu suspenso ao lado de nós a seguir clique em e selecione Nenhum:

    • ProductCategoryID

    • ProductModelID

    • ThumbnailPhotoFileName

    • ROWGUID

    • ModifiedDate

  4. Clique no menu suspenso ao lado do ThumbNailPhoto nó e selecione imagem.

    ObservaçãoObservação

    Por padrão, itens na Fontes de dados janela que representam imagens têm seu controle padrão definido como Nenhum. Isso ocorre porque as imagens são armazenadas como matrizes de byte em bancos de dados e matrizes de byte podem conter qualquer coisa, desde uma simple matriz de bytes para o arquivo executável de um grande aplicativo.

  5. Do Fontes de dados janela, arraste o produto o nó para a linha de grade sob a linha que contém os botões.

    Visual Studio gera o XAML que define um conjunto de controles que são limite aos dados da produtos tabela.Ele também gera o código que carrega os dados.Para obter mais informações sobre o XAML e o código gerado, consulte Controles do WPF de ligação a dados em Visual Studio.

  6. No designer, clique na caixa de texto ao lado do Identificação do produtorótulo.

  7. No Propriedades janela, marque a caixa de seleção ao lado do IsReadOnlypropriedade.

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

Para permitir aos usuários navegar pelos registros de produto

  1. No designer, clique duas vezes o < o botão na superfície de janela .

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

  2. Modificar o Window_Loadedmanipulador de evento para que as ProductViewSource, AdventureWorksLTDataSet, e AdventureWorksLTDataSetProductTableAdapter estão fora do método e acessíveis para todo o formulário. Apenas esses declarar global para o formulário, atribuir -os dentro a Window_Loadedmanipulador de evento semelhante à seguinte:

    Dim ProductViewSource As System.Windows.Data.CollectionViewSource
    Dim AdventureWorksLTDataSet As AdventureWorksProductsEditor.AdventureWorksLTDataSet
    Dim AdventureWorksLTDataSetProductTableAdapter As AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter
    
    Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
        AdventureWorksLTDataSet = CType(Me.FindResource("AdventureWorksLTDataSet"), AdventureWorksProductsEditor.AdventureWorksLTDataSet)
        'Load data into the table Product. You can modify this code as needed.
        AdventureWorksLTDataSetProductTableAdapter = New AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter()
        AdventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDataSet.Product)
        ProductViewSource = CType(Me.FindResource("ProductViewSource"), System.Windows.Data.CollectionViewSource)
        ProductViewSource.View.MoveCurrentToFirst()
    End Sub
    
    private AdventureWorksProductsEditor.AdventureWorksLTDataSet AdventureWorksLTDataSet;
    private AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter adventureWorksLTDataSetProductTableAdapter;
    private System.Windows.Data.CollectionViewSource productViewSource;
    
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        AdventureWorksLTDataSet = ((AdventureWorksProductsEditor.AdventureWorksLTDataSet)(this.FindResource("adventureWorksLTDataSet")));
        // Load data into the table Product. You can modify this code as needed.
        adventureWorksLTDataSetProductTableAdapter = new AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter();
        adventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDataSet.Product);
        productViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("productViewSource")));
        productViewSource.View.MoveCurrentToFirst();
    }
    
  3. Adicione o seguinte código para o manipulador de eventos backButton_Click.

    If ProductViewSource.View.CurrentPosition > 0 Then
        ProductViewSource.View.MoveCurrentToPrevious()
    End If
    
    if (productViewSource.View.CurrentPosition > 0)
    {
        productViewSource.View.MoveCurrentToPrevious();
    }
    
  4. Retornar ao designer e clique duas vezes o > botão.

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

    If ProductViewSource.View.CurrentPosition < CType(ProductViewSource.View, CollectionView).Count - 1 Then
        ProductViewSource.View.MoveCurrentToNext()
    End If
    
    if (productViewSource.View.CurrentPosition < ((CollectionView)productViewSource.View).Count - 1)
    {
        productViewSource.View.MoveCurrentToNext();
    }
    

Salvando alterações em registros de produtos

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

Para adicionar o recurso para salvar alterações em registros de produtos

  1. No designer, clique duas vezes o Salvar alterações botão.

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

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

    AdventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product)
    
    adventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product);
    
    ObservaçãoObservação

    Este exemplo usa a Saveo método da TableAdapter para salvar as alterações. Isso é apropriado nesta explicação, porque somente uma tabela de dados está sendo alterado.Se você precisar salvar alterações em várias tabelas de dados, você também pode usar o UpdateAllo método da TableAdapterManager que Visual Studio gera com seu conjunto de dados. Para mais informações, consulte Visão geral do TableAdapterManager.

Testando o aplicativo

Compile e execute o aplicativo.Verifique se você pode visualizar e atualização registros de produtos.

Para testar o aplicativo

  1. Pressione F5.

    O aplicativo é compilada e executada.Verifique o seguinte:

    • As caixas de texto exibem dados do primeiro registro do produto que tenha uma foto.Este produto possui o produto 713 ID e o nome do - manga longa Jersey de logotipo, S.

    • Você pode clicar a > ou < botões para navegar pelos registros de outros produtos.

  2. Em um dos registros de produtos, alterar o tamanho valor e, em seguida, clique em Salvar as alterações.

  3. Feche o aplicativoe reinicie o aplicativo pressionando F5 no Visual Studio.

  4. Navegue até o registro de produto que você alterou e verificar que a alteração será mantida.

  5. Feche o aplicativo.

Próximas etapas

Depois de concluir este passo a passo, você pode executar as seguintes tarefas:

Consulte também

Tarefas

Como: vincular controles WPF dados em Visual Studio

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

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

Trabalhando com conjuntos de dados em Visual Studio

WPF e Silverlight Designer Overview

Visão geral de vinculação de dados