C # Определение количества необходимых строк / столбцов сетки данных

#c# #wpf #datagrid #cell #rows

#c# #wpf #datagrid #ячейка #строки

Вопрос:

Я получил задание, в котором мне нужно прочитать текст из файла и извлечь числа в a DataGrid , поэтому мой вопрос заключается в том, как узнать, сколько строк или / и столбцов мне нужно DataGrid , чтобы они выглядели красиво и были заполнены числами.

Итак, если у меня 9 чисел, сетка должна быть примерно 3×3, или если у меня 18 -> 6×3 и т.д.

Количество чисел может составлять от 1 до 9999999 (много).

Я думал о том, чтобы сделать что-то вроде:

 int x, i, j;   //x-amount of numbers,i-rows,j-columns

while (i * j < a)
{
     if (a % 2 == 0)
       {
         i  ;
         j  ;
       }
}
  

И так далее, и так далее, и так далее для стольких разных случаев, о которых я мог подумать, в итоге все сетки будут либо наполовину пустыми, либо полностью сломанными и непригодными для использования, например, 1×17.

Комментарии:

1. DataGrid Создает столько строк, сколько необходимо. У него есть колесо прокрутки, если данные выходят за пределы доступного пространства. Кроме того, у него есть свойство автоматически создавать столбцы для обработки столбцов, поэтому на самом деле вам просто нужно передать ему список объектов, и по большей части он позаботится об этом. После этого вы можете точно настроить его.

Ответ №1:

  1. Проверьте, является ли число простым или нет. Это не должно быть простым числом.

  2. Проверьте, делится ли это число на любое число в диапазоне от 2 до 20. Итак, допустим, число равно 2378, мы видим, что 2378 = 2 * 1189. Как правило, количество строк всегда больше, чем столбцов. Поскольку столбцы представляют имена полей. Итак, у вас есть 1189 строк и 2 столбца. Начните с 20 назад, так как мы хотим, чтобы на вашем дисплее отображалось максимальное количество столбцов.

    Теперь предположим, что у вас есть 8645, 8645 = 455 * 19, а также 8645 = 1235 * 7. Итак, мы выбираем 455 * 19 => 455 строк, 19 столбцов.

  3. Теперь вам нужно позаботиться о разрешении экрана. Это сложная часть. Но в любом случае 20 столбцов выглядят разумно при любом разрешении. Используйте SystemParameters.FullPrimaryScreenWidth , чтобы помочь вам.