public static bool UpdateDataGridView(DataGridView dataGridView, MatrixTable table, bool clear = true)
        {
            if (clear == true)
            {
                dataGridView.Rows.Clear();
                dataGridView.Columns.Clear();
            }

            if ((table == null) || (table.fields.Count < 0))
            {
                return(false);
            }

            table.fields.ForEach(x => dataGridView.Columns.Add(x, x));
            for (int i = 0; i < table.CountFiields(); i++)
            {
                dataGridView.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
                dataGridView.Rows.Add();
                dataGridView.Rows[i].HeaderCell.Value = table.fields[i];
            }
            dataGridView.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
            dataGridView.TopLeftHeaderCell.Value = table.name;

            for (int i = 0; i < dataGridView.RowCount; i++)
            {
                for (int j = 0; j < dataGridView.Columns.Count; j++)
                {
                    dataGridView.Rows[i].Cells[j].ValueType = typeof(DataGridViewComboBoxCell);
                    dataGridView.Rows[i].Cells[j]           = GetDataGridViewComboBoxCell();

                    if (table.GetCellMatrix(i, j) % 1 == 0)
                    {
                        dataGridView.Rows[i].Cells[j].Value = scalesInt[Convert.ToInt32(table.GetCellMatrix(i, j))].ToString();
                    }
                    else
                    {
                        dataGridView.Rows[i].Cells[j].Value = scalesInt[-1].ToString();
                    }

                    if (i == j)
                    {
                        dataGridView.Rows[i].Cells[j].Value    = scalesInt[1].ToString();
                        dataGridView.Rows[i].Cells[j].ReadOnly = true;
                    }
                }
            }
            ;

            return(true);
        }