Изменить порядок или индекс столбцов таблицы данных

Это то, что я не могу поверить, что я не смог понять - пожалуйста, скажите мне, что я упускаю что-то простое...

У меня есть сетка данных, я заполняю ее с помощью LINQ, а также пользовательский класс для добавления данных к нему.

После этого мне нужны данные в определенном порядке - похоже, они меня игнорируют.

Как изменить свойства столбцов, такие как индекс и т. Д.??

вот код LINQ, который я использую:

заранее спасибо...

 Dim query = From m In db.details _
                Where m.InboundDate >= CType(MonthCalendar1.SelectionStart, DateTime) _
                And m.InboundDate <= CType(MonthCalendar1.SelectionEnd, DateTime).AddHours(23).AddMinutes(59) _
                And m.ClientNo = 1 _
                  Join md In db.Manifests On md.ManifestID Equals m.MainID _
                Select New GridData With {.manifestID = m.MainID, .InboundDate = m.InboundDate, .Zip = m.Zip, .LadingPkgQty = md.LadingPkgQty, .Weight = m.Weight, .Zone = m.Zone, .Fuel = 23, .LineHaul = Nothing, .Freight = Nothing, .BilledAmount = Nothing, .PackageRate = Nothing, .LTL = Nothing}

3 ответа

Решение

Решаемая

Я не могу поверить, сколько вещей мне пришлось пройти, чтобы найти это!

Кажется, теперь это так очевидно (как и большая часть.net после факта!)

Datagrid.Columns("Zone").DisplayIndex = 0

или же

Datagrid.columns(1).DisplayIndex=0

То, что вы видите, является эффектом того, как VB генерировал анонимные типы в Visual Studio 2008 RTM. Компилятор сортирует свойства по алфавиту. Следовательно, независимо от того, какой порядок вы указали, если ваши данные связывают запрос, столбцы будут отображаться в алфавитном порядке.

В Visual Studio 2008 с пакетом обновления 1 (SP1) компилятор VB внес изменения, чтобы устранить это поведение. Анонимные типы теперь будут генерировать элементы анонимного типа так же, как вы указываете их в коде. Если вы обновитесь до VS2008 SP1, вы должны увидеть изменение в этом поведении.

Подробная статья на эту тему

Я не уверен, что конкретно происходит, но что-то нужно учитывать...

В какой момент вы изменяете столбцы? Если слишком поздно, возможно, потребуется отскок к сетке, что приведет к его перерисовке. Обычно, когда я что-то меняю и не вижу эффекта на экране, это связано с порядком привязки.

Другие вопросы по тегам