locked
Use all in RRS feed

  • Question

  • <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; }
        }

                                                                                                       
    Monday, January 27, 2014 10:22 AM

Answers