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çã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:
DataSets e TableAdapters.Para obter mais informações, consulte Trabalhando com conjuntos de dados em Visual Studio e Visão geral do TableAdapter.
Trabalhando com o WPF Designer.Para mais informações, consulte WPF e Silverlight Designer Overview.
WPF vinculação de dados.Para obter mais informações, consulte: Visão geral de vinculação de dados.
Criando o projeto
Crie um novoprojetodo WPF. O projeto irá exibir os registros de produto.
Para criar o projeto
Inicie o Visual Studio.
No menu File, aponte para New, e em seguida, clique em Project.
Expanda Visual Basic ou **Visual C#**e selecione Windows.
Selecione o aplicativo WPF modelodeprojeto.
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
No menu Data, clique em Show Data Sources.
A janela Data Sources é aberta.
Na janela Data Sources, clique em Add New Data Source.
O Data Source Configuration Wizard é aberto.
Sobre o Choose a Data Source Type página, selecione banco de dadose, em seguida, clique em próximo.
Sobre o Escolher um modelo de banco de dados página, selecione Datasete, em seguida, clique em próximo.
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.
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.
Sobre o Escolha seus objetos de banco de dados de página, expandirtabelase, em seguida, selecione o produto (SalesLT) tabela.
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.
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
Em Solution Explorer, duas vezes no arquivo AdventureWorksLTDataSet.xsd.
O Dataset designer abre.
No designer, clique com o botão direito do Fill,GetData() consulta e selecione Configure.
O TableAdapter Configuration Wizard abre.
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'
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
Em Solution Explorer, clique duas vezes em MainWindow. XAML.
A janela é aberta no WPF Designer.
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"><</Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">></Button> <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>
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
No Fontes de dados janela, clique no menu suspenso para o produto nó e selecione detalhes.
Expanda o produto nó.
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
Clique no menu suspenso ao lado do ThumbNailPhoto nó e selecione imagem.
Observaçã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.
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.
No designer, clique na caixa de texto ao lado do Identificação do produtorótulo.
No Propriedades janela, marque a caixa de seleção ao lado do IsReadOnlypropriedade.
Navegar pelos registros de produto
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
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.
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(); }
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(); }
Retornar ao designer e clique duas vezes o > botão.
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
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.
Adicione o seguinte código para o manipulador de eventos saveButton_Click.
AdventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product)
adventureWorksLTDataSetProductTableAdapter.Update(AdventureWorksLTDataSet.Product);
Observaçã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
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.
Em um dos registros de produtos, alterar o tamanho valor e, em seguida, clique em Salvar as alterações.
Feche o aplicativoe reinicie o aplicativo pressionando F5 no Visual Studio.
Navegue até o registro de produto que você alterou e verificar que a alteração será mantida.
Feche o aplicativo.
Próximas etapas
Depois de concluir este passo a passo, você pode executar as seguintes tarefas:
Saiba como usar o Fontes de dadosjanela no Visual Studio para vincular o WPF controla a outros tipos de fontes de dados. Para obter mais informações, consulte Passo a passo: Vinculação de controles WPF para um serviço de dados do WCF e Passo a passo: Vinculação de controles WPF para um modelo de dados de entidade.
Saiba como usar o Fontes de dadosjanela no Visual Studio para exibir dados relacionados (ou seja, os dados em um pai -filhorelação) em controles do WPF . Para mais informações, consulte Passo a passo: Exibindo dados relacionados em um aplicativo WPF.
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