Exemple #1
0
        private static void OnValuesPropertyChanged(DependencyObject sourceObject, DependencyPropertyChangedEventArgs e)
        {
            Grid grid = sourceObject as Grid;

            //TODO: Сделать оптимизацию - вместо удаления ячеек сделать замену контента (если возможно, и если нужно)
            grid.Children.OfType <ValueCell>().ToList().ForEach(_ => grid.Children.Remove(_));


            IList <double> newValues = e.NewValue as IList <double>;
            double         count     = Math.Sqrt(newValues.Count);

            int valueIndex = 0;

            for (int i = 0; i < count; i++)
            {
                for (int t = 0; t < count; t++)
                {
                    ValueCell valueCell = new ValueCell(newValues[valueIndex]);
                    valueCell.CreateBorder();

                    grid.Children.Add(valueCell);

                    valueIndex++;
                }

                ValueCell.ResetColumnIndex();
                ValueCell.IncrementRowIndex();
            }
            ValueCell.ResetAllIndexes();
        }