Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Nesta explicação passo a passo, você criará um aplicativo WPF que contém controles ligados a dados. Os controles são vinculados a registros de cliente que são encapsulados em um WCF Data Service. Você também adicionará botões que os clientes podem usar para exibir e atualizar registros.
Este passo a passo ilustra as seguintes tarefas:
Criação de um Modelo de Dados de Entidade que é gerado a partir de dados no banco de dados de exemplo AdventureWorksLT.
Criando um WCF Data Service que expõe os dados no Modelo de Dados de Entidade para um aplicativo WPF.
Criando um conjunto de controles ligados a dados arrastando itens da janela Fontes de Dados para o designer do WPF.
Criação de botões que navegam para frente e para trás através dos registos de clientes.
Criar um botão para guardar alterações de dados nos controlos para o Serviço de Dados WCF e na fonte de dados subjacente.
Observação
As instruções neste artigo ilustram a versão mais recente da experiência de desenvolvimento interativo (IDE) disponível no Visual Studio. Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário. Você pode estar usando uma versão diferente do Visual Studio ou configurações de ambiente diferentes. Para obter mais informações, consulte Personalizar o IDE.
Pré-requisitos
Você precisa dos seguintes componentes para concluir este passo a passo:
Visual Studio
Acesso a uma instância em execução do SQL Server ou do SQL Server Express que tenha o banco de dados de exemplo AdventureWorksLT anexado a ele. Para baixar o banco de dados, consulte Bancos de dados de exemplo AdventureWorks
O conhecimento prévio dos seguintes conceitos também é útil, mas não é necessário para concluir o passo a passo:
Modelos de dados no WCF Data Services.
Modelos de Dados de Entidade e o ADO.NET Entity Framework. Para obter mais informações, consulte Visão geral do Entity Framework.
Vinculação de dados do WPF. Para obter mais informações, consulte Visão geral da vinculação de dados.
Criar o projeto de serviço
Inicie este passo a passo criando um projeto C# ou Visual Basic ASP.NET Web Application . Nomeie o projeto AdventureWorksService.
No Gerenciador de Soluções, clique com o botão direito do mouse em Default.aspx e selecione Excluir. Este arquivo não é necessário para o passo a passo.
Criar um Modelo de Dados de Entidade para o serviço
Para expor dados a um aplicativo usando um WCF Data Service, você deve definir um modelo de dados para o serviço. O WCF Data Service oferece suporte a dois tipos de modelos de dados: Modelos de Dados de Entidade e modelos de dados personalizados que são definidos usando objetos CLR (Common Language Runtime) que implementam a IQueryable<T> interface. Nesta explicação passo a passo, você cria um Modelo de Dados de Entidade para o modelo de dados.
No menu Projeto, clique em Adicionar Novo Item.
Na lista Modelos Instalados, clique em Dados e selecione o item de projeto Modelo de Dados de Entidade ADO.NET .
Altere o nome para
AdventureWorksModel.edmxe clique em Adicionar.O assistente Modelo de Dados de Entidade abre-se.
Na página Escolher Conteúdo do Modelo , clique em Gerar a partir do banco de dados e clique em Avançar.
Na página Escolha sua conexão de dados , selecione uma das seguintes opções:
Se uma conexão de dados com o banco de dados de exemplo AdventureWorksLT estiver disponível na lista suspensa, selecione-a.
Clique em Nova Conexão e crie uma conexão com o banco de dados AdventureWorksLT.
Na página Escolha sua conexão de dados , verifique se a opção Salvar configurações de conexão de entidade em App.Config como está selecionada e selecione Avançar.
Na página Choose Your Database Objects , expanda Tables e selecione a tabela SalesOrderHeader .
Clique em Concluir.
Criar o serviço
Crie um WCF Data Service para expor os dados no Modelo de Dados de Entidade a um aplicativo WPF:
No menu Projeto , selecione Adicionar Novo Item.
Na lista Modelos Instalados , clique em Web e selecione o item de projeto WCF Data Service .
Na caixa Nome , digite
AdventureWorksService.svce clique em Adicionar.Visual Studio adiciona o
AdventureWorksService.svcao projeto.
Configurar o serviço
Você deve configurar o serviço para operar no Modelo de Dados de Entidade que você criou:
No arquivo de
AdventureWorks.svccódigo, substitua a declaração de classe AdventureWorksService pelo código a seguir.public class AdventureWorksService : DataService<AdventureWorksLTEntities> { // This method is called only once to initialize service-wide policies. public static void InitializeService(IDataServiceConfiguration config) { config.SetEntitySetAccessRule("SalesOrderHeaders", EntitySetRights.All); } }Esse código atualiza a classe AdventureWorksService, para que ela derive de uma DataService<T> que opera na classe de contexto de objeto
AdventureWorksLTEntitiesem seu Modelo de Dados de Entidade. Ele também atualiza o métodoInitializeServicepara permitir que os clientes do serviço tenham acesso total de leitura/gravação à entidadeSalesOrderHeader.Crie o projeto e verifique se ele é compilado sem erros.
Criar o aplicativo cliente WPF
Para exibir os dados do WCF Data Service, crie um novo aplicativo WPF com uma fonte de dados baseada no serviço. Mais adiante neste passo a passo, você adicionará controles ligados a dados ao aplicativo.
No Gerenciador de Soluções, clique com o botão direito do mouse no nó da solução, clique em Adicionar e selecione Novo Projeto.
Na caixa de diálogo Novo Projeto , expanda Visual C# ou Visual Basic e selecione Windows.
Selecione o modelo de projeto Aplicativo WPF .
Na caixa Nome, digite
AdventureWorksSalesEditore clique em OK.O Visual Studio adiciona o
AdventureWorksSalesEditorprojeto à solução.No menu Dados , clique em Mostrar Fontes de Dados.
A janela Fontes de dados é aberta.
Na janela Fontes de Dados, clique em Adicionar Nova Fonte de Dados.
O assistente de Configuração da Fonte de Dados é aberto.
Na página Escolha um Tipo de Fonte de Dados do assistente, selecione Serviço e Avançar.
Na caixa de diálogo Adicionar Referência de Serviço , clique em Descobrir.
O Visual Studio pesquisa a solução atual em busca de serviços disponíveis e adiciona
AdventureWorksService.svcà lista de serviços disponíveis na caixa Serviços .Na caixa Namespace , digite AdventureWorksService.
Na caixa Serviços, clique em AdventureWorksService.svc e selecione OK.
O Visual Studio baixa as informações de serviço e retorna ao assistente de Configuração da Fonte de Dados .
Na página Adicionar Referência de Serviço , clique em Concluir.
O Visual Studio adiciona nós que representam os dados retornados pelo serviço à janela Fontes de Dados .
Definir a interface do usuário
Adicione vários botões à janela modificando o XAML no designer do WPF. Mais adiante neste passo a passo, você adicionará código que permite que os usuários visualizem e atualizem registros de vendas usando esses botões.
No Gerenciador de Soluções, clique duas vezes em MainWindow.xaml.
A janela é aberta no designer do WPF.
No modo de exibição XAML do designer, adicione o seguinte código entre as
<Grid>tags:<Grid.RowDefinitions> <RowDefinition Height="75" /> <RowDefinition Height="525" /> </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>Construa o projeto.
Criar os controles associados a dados
Crie controlos que mostrem registos de clientes arrastando o nó SalesOrderHeaders da janela de Fontes de Dados até ao designer.
Na janela Fontes de Dados, clique na lista suspensa do nó SalesOrderHeaders e selecione Detalhes.
Expanda o nó SalesOrderHeaders .
Neste exemplo, alguns campos não serão exibidos, portanto, clique no menu da lista suspensa ao lado dos seguintes nós e selecione Nenhum:
CreditCardApprovalCode
ModifiedDate
OnlineOrderFlag
RevisãoNúmero
Rowguid
Essa ação impede que o Visual Studio crie controles ligados a dados para esses nós na próxima etapa. Para este passo a passo, suponha que o usuário final não precisa ver esses dados.
Na janela Fontes de Dados, arraste o nó SalesOrderHeaders para a linha da grelha abaixo da linha que contém os botões.
O Visual Studio gera XAML e código que cria um conjunto de controles vinculados a dados na tabela Product . Para obter mais informações sobre o código e o XAML gerados, consulte Vincular controles WPF a dados no Visual Studio.
No designer, clique na caixa de texto ao lado do rótulo ID do cliente .
Na janela Propriedades , marque a caixa de seleção ao lado da propriedade IsReadOnly .
Defina a propriedade IsReadOnly para cada uma das seguintes caixas de texto:
Número da ordem de compra
ID da ordem de venda
Número da ordem de venda
Carregar os dados do serviço
Use o objeto proxy de serviço para carregar dados de vendas do serviço. Em seguida, atribua os dados retornados à fonte de dados para o CollectionViewSource na janela WPF.
No designer, para criar o manipulador de
Window_Loadedeventos, clique duas vezes no texto que diz: MainWindow.Substitua o manipulador de eventos pelo código a seguir. Certifique-se de substituir o
localhostendereço neste código pelo endereço de host local no computador de desenvolvimento.private AdventureWorksService.AdventureWorksLTEntities dataServiceClient; private System.Data.Services.Client.DataServiceQuery<AdventureWorksService.SalesOrderHeader> salesQuery; private CollectionViewSource ordersViewSource; private void Window_Loaded(object sender, RoutedEventArgs e) { // TODO: Modify the port number in the following URI as required. dataServiceClient = new AdventureWorksService.AdventureWorksLTEntities( new Uri("http://localhost:45899/AdventureWorksService.svc")); salesQuery = dataServiceClient.SalesOrderHeaders; ordersViewSource = ((CollectionViewSource)(this.FindResource("salesOrderHeadersViewSource"))); ordersViewSource.Source = salesQuery.Execute(); ordersViewSource.View.MoveCurrentToFirst(); }
Navegar pelos registos de vendas
Adicione código que permita aos utilizadores percorrer os registos de vendas usando os botões < e >.
No designer, clique duas vezes no < botão na superfície da janela.
O Visual Studio abre o arquivo code-behind e cria um novo
backButton_Clickmanipulador de eventos para o Click evento.Adicione o seguinte código ao manipulador de eventos gerado
backButton_Click:Retorne ao designer e clique duas vezes no > botão.
O Visual Studio abre o arquivo code-behind e cria um novo
nextButton_Clickmanipulador de eventos para o Click evento.Adicione o seguinte código ao manipulador de eventos gerado
nextButton_Click:
Salvar alterações nos registros de vendas
Adicione código que permita aos usuários exibir e salvar alterações em registros de vendas usando o botão Salvar alterações :
No designer, clique duas vezes no botão Salvar alterações .
O Visual Studio abre o arquivo code-behind e cria um novo
saveButton_Clickmanipulador de eventos para o Click evento.Adicione o seguinte código ao manipulador de eventos
saveButton_Click.
Testar a aplicação
Crie e execute o aplicativo para verificar se você pode exibir e atualizar os registros do cliente:
No menu Compilar , clique em Compilar Solução. Verifique se a solução é compilada sem erros.
Pressione Ctrl+F5.
O Visual Studio inicia o projeto AdventureWorksService , sem depurá-lo.
No Gerenciador de Soluções, clique com o botão direito do mouse no projeto AdventureWorksSalesEditor .
No menu do botão direito do mouse (menu de contexto), em Depurar, clique em Iniciar nova instância.
A aplicação é executada. Verifique o seguinte:
As caixas de texto exibem diferentes campos de dados do primeiro registro de vendas, que tem a ID da ordem de venda 71774.
Você pode clicar nos botões > ou < para navegar por outros registros de vendas.
Em um dos registros de vendas, digite algum texto na caixa Comentário e selecione Salvar alterações.
Feche o aplicativo e, em seguida, inicie o aplicativo novamente do Visual Studio.
Navegue até o registro de vendas que você alterou e verifique se a alteração persiste depois de fechar e reabrir o aplicativo.
Feche o aplicativo.
Próximos passos
Depois de concluir este passo a passo, você pode executar as seguintes tarefas relacionadas:
Saiba como usar a janela Fontes de Dados no Visual Studio para vincular controles WPF a outros tipos de fontes de dados. Para obter mais informações, consulte Vincular controles WPF a um conjunto de dados.
Saiba como usar a janela Fontes de Dados no Visual Studio para exibir dados relacionados (ou seja, dados em uma relação pai-filho) em controles WPF. Para obter mais informações, consulte Passo a passo: Exibindo dados relacionados em um aplicativo WPF.