Ajout d'une nouvelle ligne dans la position correcte à un wingrid trié par l'utilisateur avec bindingsource

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

Question

J'ai un Infragistics UltraGrid utilisant un bindingSource.

Si j'ajoute un nouvel objet à ma liste de liaisons, il ajoute une ligne au bas de la grille, ce qui est bien s'il n'y a pas de tri défini par l'utilisateur.

La question est que si l'utilisateur clique sur l'en-tête d'une colonne pour trier la grille, existe-t-il un moyen pour que les nouvelles lignes apparaissent dans le bon ordre de tri au lieu d'être toujours en bas?

Le tri de toutes les lignes sur chaque insertion est trop coûteux.

Était-ce utile?

La solution

Cela ressemble à un ghetto. Le support Infragistics a également indiqué que la méthode RefreshSortPosition () était le seul choix possible.

// 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();

Pour être un peu plus efficace, vous pouvez toujours être intelligent en désactivant le redessinage, etc., puis en appelant l'actualisation sur un tas de lignes après une série de commandes, etc.

J'espère que ça aide. J'ai eu très peu de chance en recherchant ce problème sur Google.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top