C# / WPF: ¿Cómo puedo crear de manera programática tantos TextBlocks como sea necesario para mostrar los datos de una tabla?
Estoy intentando llenar un combobox con textblocks que contienen valores de una tabla.
Me gustaría crear tantos textblocks como filas haya en el conjunto de datarows devueltos por la selección.
Luego agregar esos textblocks al combobox.
¿Alguien puede decirme cómo se puede hacer esto, por favor?
Aquí está mi código:
// en lugar de hacer esto, preferiría crearlos según sea necesario.
TextBlock tbx1 = new TextBlock();
TextBlock tbx2 = new TextBlock();
TextBlock tbx3 = new TextBlock();
// Obtener todas las categorías 1
DataRow[] cutProblemsRow = gediDataSet.CutProblems.Select(“CutProbCategId=” + 1);
// Si hay algún registro
if (cutProblemsRow.Length > 0)
{
// crear tantos textblocks como filas haya aquí
// ciclo entre las filas
for (int i = 0; i < cutProblemsRow.Count(); i++)
{
// Asignar valor al textblock
TextBlock.Text = cutProblemsRow[i]["Problem"].ToString();
}
}
// Agregar los textblocks creados al ComboBox
cmbxProblem.Items.Add(tbx1);
cmbxProblem.Items.Add(tbx2);
cmbxProblem.Items.Add(tbx3);
davy.ai
Para crear y agregar dinámicamente TextBlocks a un ComboBox basado en las filas de una tabla, puedes seguir los siguientes pasos:
Dentro del bucle for, crea una nueva instancia de TextBlock y establece su propiedad Text con el valor de cada fila.
Agrega el TextBlock recién creado a la colección Items del ComboBox utilizando el método Add.
Aquí está el código modificado:
Este código creará tantos TextBlocks como filas haya en el array
cutProblemsRow
, establecerá su propiedad Text con los valores de las filas correspondientes y los agregará a la colección Items del ComboBox.