locked
What´s wrong about lst1? RRS feed

  • Question

  • <phone:PhoneApplicationPage.Resources>
            <DataTemplate x:Key="TamañoListPickerItemTemplate">
                <StackPanel Orientation="Vertical">
                    <TextBlock Text="{Binding Tamaño}"
                               Margin="{StaticResource PhoneHorizontalMargin}" />
                    <TextBlock Text="{Binding Precio,ConverterCulture=es-ES,StringFormat='{}{0:C} por copia'}"
                               Margin="{StaticResource PhoneHorizontalMargin}" />
                </StackPanel>
            </DataTemplate>
            
            <DataTemplate x:Key="TipoListPickerItemTemplate">
                <StackPanel Orientation="Vertical">
                    <TextBlock Text="{Binding Tipo}"
                               Margin="{StaticResource PhoneHorizontalMargin}" />
                </StackPanel>
            </DataTemplate>
        </phone:PhoneApplicationPage.Resources>
    <ScrollViewer>
                    <StackPanel>
                        <toolkit:ListPicker x:Name="cmbTamaño"
                                            Header="Tamaño"
                                            ItemTemplate="{StaticResource TamañoListPickerItemTemplate}"/>
                        <TextBlock Text="Numero de copias"
                                   Margin="{StaticResource PhoneHorizontalMargin}" />
                        <TextBox x:Name="txtCopias"
                                 InputScope="Number"
                                 Text="0" GotFocus="txtCopias_GotFocus" />
                        
                        <toolkit:ListPicker x:Name="cmbTipo"
                                            Header="Tipo de revelado"
                                            ItemTemplate="{StaticResource TipoListPickerItemTemplate}"/>
                        <Button x:Name="cmdBoton" Content="Calcular" Click="cmdBoton_Click"></Button>
                        <TextBlock x:Name="txbSalida"
                                   Style="{StaticResource PhoneTextLargeStyle}" 
                                   TextAlignment="Left" />
                    </StackPanel>
                </ScrollViewer>

    xaml.cs

    public MainPage()
            {
                InitializeComponent();
    
                List<Fotografias> fotos = new List<Fotografias>();
                fotos.Add(new Fotografias() { Tamaño = "10X13", Precio = 0.08 });
                fotos.Add(new Fotografias() { Tamaño = "11X15", Precio = 0.12 });
                fotos.Add(new Fotografias() { Tamaño = "12X17", Precio = 0.16 });
                fotos.Add(new Fotografias() { Tamaño = "20x27", Precio = 0.25 });
    
                cmbTamaño.ItemsSource = fotos;
    
                List<TipoRevelado> Tipo = new List<TipoRevelado>();
                Tipo.Add(new TipoRevelado() { Tipo = "En el día", Descuento = 0 });
                Tipo.Add(new TipoRevelado() { Tipo = "48 horas(+10% dto)", Descuento = 10 });
    
                cmbTipo.ItemsSource = Tipo;
            }
    
            private void cmdBoton_Click(object sender, RoutedEventArgs e)
            {
                txbSalida.Text = "";
                int copias = 0;
                try
                {
                    copias = int.Parse(txtCopias.Text);
                    if (copias <= 0)
                    {
                        throw new Exception("El numero ha de mayor que cero");
                    }
                }
                catch (FormatException)
                {
                    MessageBox.Show("Introduce numero en la caja", this.ApplicationTitle.Text, MessageBoxButton.OK);
                    txtCopias.Focus();
                    return;
    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, this.ApplicationTitle.Text, MessageBoxButton.OK);
                    txtCopias.Focus();
                    return;
                }
    
                double precio = ((Fotografias)cmbTamaño.SelectedItem).Precio;
                int descuento = ((TipoRevelado)cmbTipo.SelectedItem).Descuento;
    
    
                if (copias <= 50)
                {
                    descuento += 0;
                }
    
                else if (copias <= 100)
                {
                    descuento += 5;
                }
                else if (copias <= 200)
                {
                    descuento += 7;
                }
    
                else
                {
                    descuento += 15;
                }
    
                double total = copias * precio;
                txbSalida.Text = String.Format("Total: {0:C}", total - total * descuento / 100);
    
                if (descuento > 0)
                {
                    txbSalida.Text += String.Format("\nDescuento: {0:C}({1}%)", total * descuento / 100, descuento);
                }
    
            }
    
            
        }
    }
    



    Thursday, January 16, 2014 11:53 AM