Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Error al añadir entidades hijas a un grid

Iniciado por Asier, 14 de Mayo de 2013, 08:36:51 PM

« anterior - próximo »

Asier

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.


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






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.