2011-07-22 24 views
10

Quiero borrar/eliminar TODO el contenido de una cuadrícula incluyendo RowDefinitions, ¿cómo puedo hacer eso?¿Cómo borrar los contenidos de WPF Grid?

Gracias!

+0

Lo rejilla hace que ¿hablar de? No veo ninguna grilla o RowDefinitions? ¿Qué has intentado? –

+0

WPF Grid. ¿Nunca has oído hablar de eso? –

+2

Estaba siendo gracioso. Mi punto fue que hablaste de grid, pero no nos mostró ningún código. No mencionó que probó algo o mostró alguna investigación. –

Respuesta

18

myGrid.Children.Clear() eliminará todos los controles secundarios anidados en la cuadrícula. myGrid.RowDefinitions.Clear() eliminará todas las definiciones de fila. myGrid.ColumnDefinitions.Clear() eliminará todas las definiciones de columnas.

en aras de la completness, también puede agregar/eliminar elementos individuales a través de los métodos de agregar/quitar de las colecciones correspondientes. myGrid.Children para controles, myGrid.RowDefinitions para definiciones de fila y myGrid.ColumnDefinitions para las columnas.

toda esta información está disponible here on MSDN

+0

¡Gracias! ¡Funciona! –

+0

Después de despejar a los niños, ¿el conteo de filas y columnas siguen sin cambios? ¿Ha sido bien aclarado? –

-1

tratar de bucle en el control contenedor (Ejemplo de una cuadrícula) y en este bucle de comprobar el tipo de control de la siguiente manera:

 foreach(DependencyObject c in YourContainer.Children) 
     { 
      //If you only want to modify TextBoxes 
      if(c.GetType().ToString() == "System.Windows.Controls.TextBox") 
      { 
       //Erase Text property of all TextBoxes in my Grid Control 
       ((TextBox)c).Text = ""; 


      } 
     } 
+0

Para modificar el whis estaría bien. Pero si intentas eliminar los contenidos de la grilla como lo hizo OP originalmente, este enfoque llevaría a un comportamiento excepcional porque intentarías modificar la colección mientras la iteras. Además, dado su código, le sugiero que reemplace la comparación de cadenas por verificaciones de tipos por completo, p. al consultar solo los TextBoxes de la colección Children como los siguientes: foreach (TextBox c en YourContainer.Children.OfType ) – ckuepker

Cuestiones relacionadas