Use all in

Category: windows phone howto

Question

Use Windows Phone on Mon, 27 Jan 2014 10:22:08


<phone:PhoneApplicationPage.Resources>
        <DataTemplate x:Key="VideoClubListpickerTempleate">
            <StackPanel Orientation="Horizontal">
                <Image Source="{Binding Icono}"
                       Width="50"
                       Stretch="Fill"
                       HorizontalAlignment="Center" />
                <TextBlock Text="{Binding Concepto}" />
            </StackPanel>
        </DataTemplate>
    </phone:PhoneApplicationPage.Resources>

        <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitlePanel contiene el nombre de la aplicación y el título de la página-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="MATARÁN" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="videoclub" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>


        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>

                <toolkit:ListPicker     Grid.Row    =   "0"
                                        Header      =   "Producto a Alquilar:"
                                        Name        =   "cmbProducto" 
                                        ItemTemplate=   "{StaticResource VideoClubListpickerTempleate}" SelectionChanged="cmbProducto_SelectionChanged" />

                <toolkit:DatePicker     Grid.Row    =   "1"
                                        Header      =   "Fecha Prevista de Devolucion:"
                                        Name        =   "dtpDevolucion" ValueChanged="dtpDevolucion_ValueChanged" />

                <toolkit:ToggleSwitch   Grid.Row    =   "2" 
                                        Header      =   "Otros Datos"
                                        Content     =   "Cliente eventual" 
                                        Name        =   "togCliente" Checked="togCliente_Checked" Unchecked="togCliente_Unchecked" />

                <TextBlock              Name="txbResultado"
                                        Text="12,50 €"
                                        Grid.Row="3" 
                                        HorizontalAlignment="Center"
                                        VerticalAlignment="Center" 
                                        Style="{StaticResource PhoneTextExtraLargeStyle}" />

            </Grid> 
        </Grid>
    </Grid> 
</phone:PhoneApplicationPage>

xaml.cs

                                

private void calculo()
        {
            double precio = ((VideoClub)cmbProducto.SelectedItem).PrecioDiario;
            DateTime? hoy = DateTime.Today;
            TimeSpan diferencia = dtpDevolucion.Value.Value - hoy.Value;
            int dias = diferencia.Days;
            bool socio = false;
            if (togCliente.IsChecked == true) socio = true;
            double total = precio * dias;
            if (socio) total *= 0.80;
            txbResultado.Text = String.Format("{0}\r\n{1}", total.ToString("#.##"+"€"),dias.ToString("#0"+" días"));
        }

        public MainPage()
        {
            InitializeComponent();

            List<VideoClub> ListaVideoclub = new List<VideoClub>();

            ListaVideoclub.Add(new VideoClub()
            {
                Concepto = "VIDEO JUEGO XBOX",
                Icono = new BitmapImage(new Uri("imagenes/xbox.png",UriKind.Relative)),
                PrecioDiario = 1.25
            });
            ListaVideoclub.Add(new VideoClub()
            {
                Concepto = "VIDEO JUEGO PLAYSTATION",
                Icono = new BitmapImage(new Uri("imagenes/play.png", UriKind.Relative)),
                PrecioDiario = 1.25
            });
            ListaVideoclub.Add(new VideoClub()
            {
                Concepto = "PELICULA BLUERAY",
                Icono = new BitmapImage(new Uri("imagenes/br.png", UriKind.Relative)),
                PrecioDiario = 2.25
            });
            ListaVideoclub.Add(new VideoClub()
            {
                Concepto = "PELICULA DVD",
                Icono = new BitmapImage(new Uri("imagenes/dvd.png", UriKind.Relative)),
                PrecioDiario = 0.95
            });

            cmbProducto.ItemsSource = ListaVideoclub;


        }

        private void cmbProducto_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            calculo();
        }

        private void dtpDevolucion_ValueChanged(object sender, DateTimeValueChangedEventArgs e)
        {
            calculo();
        }

        private void togCliente_Checked(object sender, RoutedEventArgs e)
        {
            if (togCliente.IsChecked == true)
            {
                togCliente.Content = "Socio";
                calculo();
            }
            else
            {
                togCliente.Content = "Cliente eventual";
                calculo();
            }
        }

        private void togCliente_Unchecked(object sender, RoutedEventArgs e)
        {
            if (togCliente.IsChecked == true)
            {
                togCliente.Content = "Socio";
                calculo();
            }
            else
            {
                togCliente.Content = "Cliente eventual";
                calculo();
            }
        }


    }
}

clase

    public class VideoClub
    {
        public String        Concepto            { get; set; }
        public double        PrecioDiario        { get; set; }
        public ImageSource   Icono               { get; set; }
    }

                                                                                                   

Replies

Jeff Sanders on Mon, 27 Jan 2014 20:59:40


Thanks!