Как изменить порядок столбцов в DataGridView?

поэтому я заполняю свой DGV некоторыми данными и устанавливаю некоторые невидимые столбцы:

        var part = inventory.espiromex_product.Where(p => p.descriptionsmall == cmbMainP.Text).First().partnumberp;
        dtgAssy.DataSource = inventory.espiromex_productsub.Where(p => p.partnumberp == part);
        dtgAssy.Columns["idproductsub"].Visible = false;
        dtgAssy.Columns["partnumberp"].Visible = false;
        dtgAssy.Columns["partnumbersubp"].Visible = true;
        dtgAssy.Columns["quantity"].Visible = true;
        dtgAssy.Columns["comments"].Visible = true;
        dtgAssy.Columns["assemblyno"].Visible = false;
        dtgAssy.Columns["assemblynodesc"].Visible = false;
        dtgAssy.Columns["uomid"].Visible = true;
        dtgAssy.Columns["subassemblylevelnumber"].Visible = false;
        dtgAssy.Columns["scrappercent"].Visible = true;

Это просто отлично, но столбцы отсортированы по алфавиту, как я могу программно изменить порядок столбцов?

Обратите внимание, что инвентарь - это Entitie, и я использую Linq для Entities.

Ответы

Ответ 2

Другое предложение: не позволяйте datagridview принимать решения за вас. Вместо того, чтобы позволить dgv автоматически генерировать столбцы для вас во время привязки, напишите код для создания столбцов в том порядке, в котором вы хотите, и с помощью необходимых атрибутов, а затем привяжите источник данных. Опираясь на dgv, чтобы выполнить эту работу, можно создать непредсказуемые результаты по мере выхода новых версий или внести тонкие изменения в ваш источник данных.