×
Namespaces

Variants
Actions

Como avaliar uma aplicação usando Cimbalino Windows Phone Toolkit

From Nokia Developer Wiki
Jump to: navigation, search

Este artigo tem como objetivo mostrar como usar Cimbalino Windows Phone Toolkit - MarketplaceReviewService.

SignpostIcon XAML 40.png
WP Metro Icon WP8.png
SignpostIcon WP7 70px.png
Article Metadata

Exemplo de código
Código fonte: MarketplaceReviewService (github)

Testado com
SDK: Windows Phone 8.0 SDK, Windows Phone 7.1.1 SDK
Aparelho(s): Nokia Lumia 800, 920

Compatibilidade
Artigo
Tradução:
Por saramgsilva
Última alteração feita por saramgsilva em 23 Nov 2013

Contents

Introdução

Cimbalino Windows Phone Toolkit é um conjunto de itens uteis e poderosos para ajudar na implementação de aplicações Windows Phone. Projeto base do toolkit contendo serviços para implementação do padrão de MVVM, conversores, classes auxiliares, métodos de extensões;

  • IMarketplaceReviewService é a interface (Cimbalino toolkit - código fonte aqui) que representa o serviço com a capacidade de mostrar o ecrã dos comentários do mercados na aplicação. A Implementação é MarketplaceReviewService.

Ecrã do exemplo criado

Marketplacereview.png

Contruindo o exemplo

O código fonte pode ser obtido em Exemplo MarketplaceReviewService (github).

Os pacotes estão disponíveis em Nuget Package Manager (para ambos os "targets") e podem ser instalados, para mais detalhes consultar: Como instalar os pacotes Cimbalino Windows Phone Toolkit. O exemplo deste artigo usa MVVM Light para ajudar na implementação do padrão MVVM, para mais detalhes consultar:


Registando os serviços

Devemos começar por registar cada serviço no ViewModelLocator, como podemos ver de seguida:

  1.     public class ViewModelLocator
  2.     {
  3.         public ViewModelLocator()
  4.         {
  5.             ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
  6.  
  7.             if (!SimpleIoc.Default.IsRegistered<IMarketplaceReviewService>())
  8.             {
  9.                 SimpleIoc.Default.Register<IMarketplaceReviewService, MarketplaceReviewService>();
  10.             }
  11.  
  12.             SimpleIoc.Default.Register<MainViewModel>();
  13.         }
  14.  
  15.         public MainViewModel MainViewModel
  16.         {
  17.             get
  18.             {
  19.                 return ServiceLocator.Current.GetInstance<MainViewModel>();
  20.             }
  21.         }
  22.  
  23.         public static void Cleanup()
  24.         {
  25.             // TODO Clear the ViewModels
  26.         }
  27.     }

Implementando a ViewModel

Em seguinda devemos implementar o MainViewModel, como podemos ver de seguida:

  1.     /// This class contains properties that the main View can data bind to.
  2.     public class MainViewModel : ViewModelBase
  3.     {
  4.         ///The marketplace review service.
  5.         private readonly IMarketplaceReviewService _marketplaceReviewService;
  6.  
  7.  
  8.         /// The public application url.
  9.         private readonly string _appUrl;
  10.  
  11.         /// <summary>
  12.         /// Initializes a new instance of the <see cref="MainViewModel"/> class.
  13.         /// </summary>
  14.         /// <param name="marketplaceReviewService">
  15.         /// The marketplace review service
  16.         /// </param>
  17.         public MainViewModel(IMarketplaceReviewService marketplaceReviewService)
  18.         {
  19.             _marketplaceReviewService = marketplaceReviewService;
  20.  
  21.             RateCommand = new RelayCommand(Rate);
  22.         }
  23.  
  24.         /// <summary>
  25.         /// Gets the rate command.
  26.         /// </summary>
  27.         public ICommand RateCommand { get; private set; }
  28.  
  29.         /// <summary>
  30.         /// The rate.
  31.         /// </summary>
  32.         private void Rate()
  33.         {
  34.             _marketplaceReviewService.Show();
  35.         }
  36.     }

Implementando a View

Para conetar a view model com a página devemos adicionar a ViewModelLocator no App.xaml:

<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />

e adicionar o binding na página principal:


 DataContext="{Binding MainViewModel,
Source={StaticResource Locator}}"

A MainPage.xaml será algo do género:

  1. <phone:PhoneApplicationPage x:Class="CimbalinoSample.MainPage"
  2.                             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.                             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.                             xmlns:cimbalino="clr-namespace:Cimbalino.Phone.Toolkit.Behaviors;assembly=Cimbalino.Phone.Toolkit"
  5.                             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6.                             xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
  7.                             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  8.                             xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
  9.                             xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
  10.                             DataContext="{Binding MainViewModel,
  11.                                                   Source={StaticResource Locator}}"
  12.                             FontFamily="{StaticResource PhoneFontFamilyNormal}"
  13.                             FontSize="{StaticResource PhoneFontSizeNormal}"
  14.                             Foreground="{StaticResource PhoneForegroundBrush}"
  15.                             Orientation="Portrait"
  16.                             SupportedOrientations="Portrait"
  17.                             shell:SystemTray.IsVisible="True"
  18.                             mc:Ignorable="d">
  19.  
  20.     <!--  LayoutRoot is the root grid where all page content is placed  -->
  21.     <Grid x:Name="LayoutRoot" Background="Transparent">
  22.         <Grid.RowDefinitions>
  23.             <RowDefinition Height="Auto" />
  24.             <RowDefinition Height="*" />
  25.         </Grid.RowDefinitions>
  26.  
  27.         <!--  TitlePanel contains the name of the application and page title  -->
  28.         <StackPanel x:Name="TitlePanel"
  29.                     Grid.Row="1"
  30.                     Margin="0,5,12,396">
  31.             <TextBlock Margin="12,0"
  32.                        Style="{StaticResource PhoneTextTitle2Style}"
  33.                        Text="Cimbalino Toolkit Sample" />
  34.         </StackPanel>
  35.         <TextBlock Grid.RowSpan="2"
  36.                    Margin="12,50,-3,487"
  37.                    Style="{StaticResource PhoneTextTitle3Style}"
  38.                    TextWrapping="Wrap">
  39.             This samples has the goal to show how to use Cimbalino Toolkit -  MarketplaceReviewService
  40.         </TextBlock>
  41.         <!--  ContentPanel - place additional content here  -->
  42.         <Grid x:Name="ContentPanel"
  43.               Grid.Row="1"
  44.               Margin="12,0,12,0" />
  45.         <i:Interaction.Behaviors>
  46.             <cimbalino:ApplicationBarBehavior>
  47.                 <cimbalino:ApplicationBarIconButton Command="{Binding RateCommand,
  48.                                                                       Mode=OneTime}"
  49.                                                     IconUri="/Images/appbar.rate.png"
  50.                                                     Text="Rate it" />
  51.             </cimbalino:ApplicationBarBehavior>
  52.         </i:Interaction.Behaviors>
  53.     </Grid>
  54.  
  55. </phone:PhoneApplicationPage>

Exemplo Relacionado

Código Fonte

O código fonte pode ser obtido aqui.

This page was last modified on 23 November 2013, at 22:31.
102 page views in the last 30 days.
×