Buenas!,
Tengo un error que no sé si es un fallo mío o un bug del motor. Pego un código que he simplificado al máximo pero suficiente para provocar el error. Quiero hacer un Grid y en tiempo de ejecución añadir columnas al grid y nuevos elementos a esas columnas.
Al ejecutar el código da un error típico de "Referencia a objeto no establecida como instancia de un objeto". Creo que el problema está en que el grid ya está inicializado cuando se va a añadir nuevas columnas y entidades hijas, porque lógicamente si creas un grid, añades las columnas que quieras y luego añades el grid a la escena funciona perfectamente.
Muchas Gracias! un saludo
Tengo un error que no sé si es un fallo mío o un bug del motor. Pego un código que he simplificado al máximo pero suficiente para provocar el error. Quiero hacer un Grid y en tiempo de ejecución añadir columnas al grid y nuevos elementos a esas columnas.
Al ejecutar el código da un error típico de "Referencia a objeto no establecida como instancia de un objeto". Creo que el problema está en que el grid ya está inicializado cuando se va a añadir nuevas columnas y entidades hijas, porque lógicamente si creas un grid, añades las columnas que quieras y luego añades el grid a la escena funciona perfectamente.
Código [Seleccionar]
public class MyScene : Scene
{
Grid Grid;
protected override void CreateScene()
{
RenderManager.BackgroundColor = Color.CornflowerBlue;
CreateGrid();
Button button = new Button()
{
Text = "Grid Base",
Width = 600,
Height = 75,
HorizontalAlignment = WaveEngine.Framework.UI.HorizontalAlignment.Center,
VerticalAlignment = WaveEngine.Framework.UI.VerticalAlignment.Bottom,
IsBorder = true
};
button.Click += button_Click;
EntityManager.Add(button);
}
void button_Click(object sender, EventArgs e)
{
Grid.Width = Grid.Width + 100;
Grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1f, GridUnitType.Proportional) });
TextBlock child = new TextBlock()
{
Text = "Test"
};
child.SetValue(GridControl.RowProperty, 0);
child.SetValue(GridControl.ColumnProperty, Grid.Entity.NumChildrens);
Grid.Add(child);
}
private void CreateGrid()
{
Grid = new Grid()
{
Width = 100,
Height = 400,
BackgroundColor = Color.Red,
IsBorder = true
};
Grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1f, GridUnitType.Proportional) });
Grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1f, GridUnitType.Proportional) });
EntityManager.Add(Grid);
}
}
Muchas Gracias! un saludo