Налетел сегодня на забавную фичу от C# в контроле DataGridView. Смысл в том, что я заполняю таблицу DataTable результатом от SQL запроса. Потом, для отображения этой таблицы, мне необходимо сделать простую вещь:
датагрид.DataSource = таблицаРезультатов;
Но в таком случае начинается чехорда – колонки DataGridViewTextBoxColumn начинают меняться местами в произвольном порядке. Логично, что должна быть какая-то метода по сортировке этих колонок. Но в визуальном редакторе набора колонок DataGridView этого параметра нет. А вот если внимательно присмотреться к DataGridViewTextBoxColumn, то в нем можно увидеть параметр DisplayIndex, который как раз и отвечает за последовательность отображения DataGridViewTextBoxColumn в самом DataGridView. То есть при переустановке DataSource происходит слет этих индексов. Поэтому пришлось в коде перед установкой нового DataSource делать перевыставление индексов для колонок. После этого чехорда колонок прекратилась. Потратил лишние 30 минут на вкуривание этой темы. Я ламер(