Logo

¡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.
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.