Agregando filas y columnas a una cuadrícula de botones en Xamarin Forms
He creado una definición de grid en mi archivo .xaml.
El valor de tamaño (_lattice.size) para el grid solo aparece en tiempo de ejecución.
¿Cómo puedo llenar dinámicamente el grid con filas y columnas
y también colocar botones en cada celda del grid de botones?
Mi intento:
//.xaml
<grid x:fieldmodifier="public" x:name="_tableGrid"></grid>
Código detrás (c#)
private void GenerateTable(string filepath)
{
GamePage.statusLabel.IsVisible = true;
GamePage.buttonStartStop.IsVisible = true;
_initializeTerminate.InitializeGame(filepath, _lattice, _snake, _egg);
for(Int32 k = 0; k < _lattice.size; k++)
{
var r = new RowDefinition();
r.Height = 50;
GamePage._tableGrid.RowDefinitions.Add(r);
}
for(Int32 l = 0; l < _lattice.size; l++)
{
var c = new ColumnDefinition();
c.Width = 50;
GamePage._tableGrid.ColumnDefinitions.Add(c);
}
for (Int32 i = 0; i < _lattice.size; i++)
{
for (Int32 j = 0; j < _lattice.size; j++)
{
_lattice.button_lattice[j * _lattice.size + i] = new Button();
_lattice.button_lattice[j * _lattice.size + i].Background = Brush.White;
_lattice.button_lattice[j * _lattice.size + i].BorderWidth = 1.0;
_lattice.button_lattice[j * _lattice.size + i].BorderColor = Color.Yellow;
GamePage._tableGrid.Children.Add(_lattice.button_lattice[j * _lattice.size + i]);
}
}
}
Lamentablemente, el código anterior no genera el comportamiento deseado.
Parece que solo hay un solo botón presente en la pantalla.
davy.ai
Para llenar dinámicamente la cuadrícula con filas y columnas y colocar botones en cada celda, puedes seguir los siguientes pasos:
Paso 1: Definir una cuadrícula en tu archivo XAML y darle un nombre. Por ejemplo:
Paso 2: En tu archivo de código detrás (C#), crea definiciones de filas y columnas para la cuadrícula y añádelas a las colecciones
RowDefinitions
yColumnDefinitions
de la cuadrícula. Por ejemplo:Paso 3: Crea botones y añádelos a la cuadrícula. Para colocarlos en filas y columnas específicas, establece las propiedades adjuntas
Grid.Row
yGrid.Column
de cada botón. Por ejemplo:En este ejemplo, también se añade un controlador de eventos
Button_Clicked
a cada botón.Aquí tienes el código completo:
Este código creará una cuadrícula con
_rowCount
número de filas y_colCount
número de columnas, y añadirá un botón a cada celda de la cuadrícula. Puedes ajustar las definiciones de filas y columnas y otras propiedades de los botones según tus necesidades.