public GameFieldView()
        {
            InitializeComponent();

            _cellHandlersController = VMLocator.CellHandlersController;
            DataContext             = _cellHandlersController;

            Loaded   += (s, e) => AttachHandlers();
            Unloaded += (s, e) => DetachHandlers();

            InitGameField();
        }
Example #2
0
        public void GenerateNewField(ICellHandlersController fieldController)
        {
            if (fieldController == null)
            {
                return;
            }

            for (int i = 0; i < fieldController.Dimension; i++)
            {
                RowDefinitions.Add(new RowDefinition()
                {
                    Height = GridLength.Auto
                });
            }

            for (int j = 0; j < fieldController.Dimension; j++)
            {
                ColumnDefinitions.Add(new ColumnDefinition()
                {
                    Width = GridLength.Auto
                });
            }

            Margin     = new Thickness(0);
            Background = Brushes.Black;

            for (int i = 0; i < fieldController.Dimension; i++)
            {
                for (int j = 0; j < fieldController.Dimension; j++)
                {
                    var cell = new GameCell(fieldController.GetCellHandler(i, j), 60, 60)
                    {
                        Margin = new Thickness(0),
                        HorizontalAlignment = HorizontalAlignment.Stretch,
                        VerticalAlignment   = VerticalAlignment.Stretch
                    };

                    Children.Add(cell);

                    SetColumn(cell, j);
                    SetRow(cell, i);
                }
            }
        }