Adicionando nova linha na posição correta para um usuário classificado WinGrid com BindingSource

StackOverflow https://stackoverflow.com/questions/658967

Pergunta

Eu tenho um Infragistics UltraGrid usando um BindingSource.

Se eu adicionar um novo objeto à minha lista vinculativa, ele adiciona uma linha à parte inferior da grade que é bom se não há definido tipo de usuário.

A pergunta é se o usuário clica em um cabeçalho de coluna para classificar a grade, há uma maneira para novas linhas para aparecer na ordem de classificação apropriada em vez de sempre no fundo?

Re-ordenação todas as linhas em cada inserção é muito caro.

Foi útil?

Solução

Parece espécie de gueto. Infragistics também suportam indicaram que o método RefreshSortPosition () é a única opção.

// Add to binding list which will trigger a row to be added to the bound ultragrid.
this.bindingList.Add(new Person("Smith", "John"));

// Get length since we know this will always be added to the end
int length = this.ultraGrid.Rows.All.Length;

// Get it to sort
this.ultraGrid.Rows[length - 1].RefreshSortPosition();

Para ser um pouco mais eficiente, você pode sempre ser inteligente por desativar o redesenho, etc e, em seguida, chamar de atualização em um monte de linhas depois de um lote de encomendas, etc ...

Espero que ajude. Eu tinha muito pouca sorte pesquisando este problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top