Ivan... Achei...
No requery os grupos do ListView não são 'destruídos'....
Assim, na segunda chamada o ListView reaproveita os grupos já existentes ordenados de acordo com a sequência de construção da chamada anterior.
Por exemplo...
Na primeira chamada tenho as cidades de ARARAQUARA e BARRETOS...
- Os grupos são construídos na ordem, ficando assim:
ARARAQUARA
. Item 1
. Item 2
BARRETOS
. Item 1
. Item 2
Na segunda chamada (por isso o problema não aparecida na primeira carga) tenho, no novo BO carregado, as cidades de AMERICO DE CAMPOS, ARARAQUARA...
- Os grupos são então montados errados. Pela lógica, AMERICO DE CAMPOS vem antes de ARARAQUARA. No entanto, como ARARAQUARA já foi criada no Requery anterior, ela ficará presa na sequência (e BARRETOS agora passará a existir na coleção, sem uso... consumindo recursos). Não sendo destruídos os grupos na entrada do Requery (listView1.Groups.Clear()), os registros são posicionados com agrupamento desordenado, ficando assim:
ARARAQUARA
. Item 1
. Item 2
. Item 3
AMERICO DE CAMPOS
. Item 1
. Item 2
Ficou claro ?
Rogério Mauri