none
Presentar el Checkbox que corresponda según el caso en Silverlight RRS feed

  • Pregunta

  • yo sé que debe haber alguna manera práctica de hacer esto, pero soy nueva, y ni idea....

    está interesante, resulta que al crear una orden de llantas en una aplicación, dependiendo del tipo de unidad (auto, camión, plataforma, etc.) y la cantidad de llantas que lleve (según el campo CantidadLlantas en una tabla) podría presentar este CheckBox:

    O este:

    Para que el usuario seleccione exactamente cuál o cuáles llantas serán arregladas o sustituidas, el numerito que tiene cada opción del CheckBox, corresponde al identificador de la llanta, que luego se guardará en una tabla en un campo NumeroLlanta.

    De esta forma, según el ejemplo de la Fig. 1, la unidad lleva 4 llantas y se está solicitando reponer la llanta trasera derecha.

    Es importante el diseño visual de cada opción de conjunto de CheckBox's que presento en cada imagen, pues el usuario puede identificar más fácilmente el código que corresponde a cada llanta.

    Mi proyecto es tipo Aplicación de Silverlight la versión es la 5.1.30514.0 con Windows 8.

    Alguna idea o apoyo que alguien pueda darme??

    Saludos y gracias!


    cyndyrdz

    martes, 7 de octubre de 2014 16:22

Respuestas

Todas las respuestas

  • hola

    segun el tipo de auto podrias implementar un template diferente que se cargue en un DataTemplate

    WPF DataTemplate Binding depending on the type of a property

    entonces puedes variar lo visual dependiendo el tipo el cual deberias representar como clase o sino definir un DataTemplateSelector

    WPF DataTemplates

    asi podrias armar template con la cantidad de check segun el tipo de auto

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 7 de octubre de 2014 16:46
  • muchas gracias Leandro Tuttini déjame lo reviso, saludos

    cyndyrdz

    martes, 7 de octubre de 2014 17:01
  • usar DateTemplate funciona muy bien en conjunto con MVVM

    ya que en tu viewmodel puedes definir una propiedad que sea instancia de una clase, entonces el tipo de la clase determina el template que se mostrara ya que el datatemplate lo defines por tipo de la clase, por supusto en tu caso tendrias que definir una clase base que represente los tipos de unidades, entonces cara clase que herede de este tendra su propio template con los check dentro

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 7 de octubre de 2014 18:21
  • otra vez gracias Leandro Tuttini más o menos estoy entiendiendo, te comento:

    Definí 4 DataTemplate, uno por cada caso distinto que tengo, para el primer caso este es el código:

            <DataTemplate x:Name="chkCantidadLlantas4" DataType="ContentControl">
                <Grid Name="grdLlantas">
                    <Border Name="borLlantas" BorderBrush="Black" BorderThickness="1" Margin="0,0,0,0" Background="DarkSeaGreen" />
                    <CheckBox Content="2" Name="chk2" Grid.Column="1" Margin="20,20,20,20"  Checked="CheckBox_Checked" />
                    <CheckBox Content="1" Name="chk1" Grid.Column="1" Margin="20,60,20,20"  Checked="CheckBox_Checked"/>
                    <CheckBox Content="4" Name="chk4" Grid.Column="1" Margin="80,20,20,20"  Checked="CheckBox_Checked"/>
                    <CheckBox Content="3" Name="chk3" Grid.Column="1" Margin="80,60,20,20"  Checked="CheckBox_Checked"/>
                </Grid>
            </DataTemplate>

    Entonces en la parte donde debo mostrar esto puse en xaml:

    <ContentControl Name="chk" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"/>

    Y mediante code behind, una vez que identifico cuál Template debo utilizar, se lo asigno:

    chk.ContentTemplate = chkCantidadLlantas4;

    Y me surge ahora la duda, puedo hacer un procedimiento genérico, en el que tenga un ciclo desde el cual reviso cuáles CheckBox están Checked?? cómo puedo hacer esto sin preguntar por el Template que se utilizó, es decir, cuando el usuario de por ejemplo, click a un botón REGISTRAR, yo debo agregar un registro por cada opción seleccionada de los CheckBox, dependiendo del template utilizado, como vimos estos CheckBox podrían ser 4, 6, 10 ó 12, y yo quisiera hacer algo así como:

    Por cada CheckBox que exista:

    si el CheckBox (n) está seleccionado => registrarlo

    Donde n vaya de 1 a la cantidad de checkbox del template

    Para el registro necesito los campos IDOrden (que lo tengo previamente) y IDLlanta (que sería el Content del CheckBox seleccionado)

    espero haberme explicado bien, podrías apoyarme con esto?? Gracias


    cyndyrdz


    Lo anexo en otra pregunta del foro....:http://social.msdn.microsoft.com/Forums/es-ES/54979563-c0c7-40c8-a976-6a750a2c20fa/identificar-cuntos-checkbox-hay-en-un-contentcontrol-silverlight?forum=wpfes
    • Editado Cynthia Rodriguez miércoles, 8 de octubre de 2014 19:50 Formulé una pregunta independiente
    miércoles, 8 de octubre de 2014 15:03