none
LIMPIAR TEXTBOXS EN WPF RRS feed

  • Pregunta

  • Que tal amigos, estoy realizando una aplicacion en WPF, con demasiados textboxs en donde se captura información de la empresa. Anteriormente en aplicaciones WIndows Forms contaba con una funcion para realizar la limpieza de las cajas de texto, pero al querer adaptarla a WPF, tengo el error en el foreach ya que no me detecta el tipo Controls.

    Quisiera saber si existe alguna manera de limpiar cajas de texto en WPF de manera recursiva como se hacia anteriormente con Windows Forms.

    ejemplo codigo windows forms

    private void btnLimpiar_Click(object sender, EventArgs e)
    {
      limpiarTextBoxes(this);
     
      // Y opcionalmente...
      this.textBox1.Focus();
    }
     
    private void limpiarTextBoxes(Control parent)
    {
       TextBox t;
       
       //Limpiar de manera rapida
       foreach (Control c in parent.Controls)
       {
           t = c as TextBox;
     
           if (t != null)
           {
               t.Clear();
           }
     
           if (c.Controls.Count > 0)
           {
               limpiarTextBoxes(c);
           }
       }
    }

    Gracias
    lunes, 28 de septiembre de 2009 21:02

Respuestas

  • Ya encontre la solución al fin jejeje la voy a postear por si alguien la requiere

    public

     

    class ClsLimpiarTextBox

    {

     

          public void LimpiarCajas(Grid mygrid)

          {

     

               foreach (object c in mygrid.Children)

              {

     

                       if (c is TextBox)

                      {

                         (c

    as TextBox).Text = String.Empty;

                     }

             }

       }


    Lo que pasa es que tendrán que utilizar el grid, panel, o cualquier objeto Canvas y utilizar la propiedad Childen para saber los controles que se encuentran dentro del contenedor y hacer el cast primeramente de tipo objeto y posteriormente preguntar de que tipo es, ya que no deja utilizar como en Windows Forms, lo que es Controls.

    Espero que les sirva amigos.

    Saludos

    Samuel Arellano
    Profesionista Microsoft VIP
    DCE 4 Estrella
    http://blogs.microsoftvip.net/sarellano/

    • Marcado como respuesta Samuel Arellano martes, 29 de septiembre de 2009 0:44
    martes, 29 de septiembre de 2009 0:43

Todas las respuestas

  • Ya encontre la solución al fin jejeje la voy a postear por si alguien la requiere

    public

     

    class ClsLimpiarTextBox

    {

     

          public void LimpiarCajas(Grid mygrid)

          {

     

               foreach (object c in mygrid.Children)

              {

     

                       if (c is TextBox)

                      {

                         (c

    as TextBox).Text = String.Empty;

                     }

             }

       }


    Lo que pasa es que tendrán que utilizar el grid, panel, o cualquier objeto Canvas y utilizar la propiedad Childen para saber los controles que se encuentran dentro del contenedor y hacer el cast primeramente de tipo objeto y posteriormente preguntar de que tipo es, ya que no deja utilizar como en Windows Forms, lo que es Controls.

    Espero que les sirva amigos.

    Saludos

    Samuel Arellano
    Profesionista Microsoft VIP
    DCE 4 Estrella
    http://blogs.microsoftvip.net/sarellano/

    • Marcado como respuesta Samuel Arellano martes, 29 de septiembre de 2009 0:44
    martes, 29 de septiembre de 2009 0:43
  • me sirvió perfecto , como comentario debemos poner nombre al grid contenedor del control (es) que queremos limpiar 
    miércoles, 17 de febrero de 2016 1:55
  • Lo ideal sería que los textbox estuvieran "ligados" a uno o mas objetos y en lugar de limpiar los objetos, creas una nueva instancia del objeto ligado y renovar la propiedad DataContext con el objeto ligado, checa información acerca de "Binding" en WPF.
    miércoles, 17 de febrero de 2016 3:50