La grille d’Infragistics: PropertyChanged

Par Jean-Sébastien Desfossés, mercredi 25 novembre 2009 09:42
Catégorie : Programmation

Résumé
La grille d’Infragistics est une des plus performantes et complètes sur le marché.  Il est donc normal que plusieurs de nos clients l’utilisent. Le seul inconvénient c’est que pour l’intégration à WPF, Infragistics prend en charge le « Binding » et empêche souvent les stratégies standards MVVM. Ce qui suit démontre une problématique courante ainsi que la façon de régler le problème.

Problématique
Pour charger la grille, on fait le « Binding » avec l’entité. La grille se charge ensuite automatiquement ou selon un format désiré. Par la suite, il est impossible de mettre le « Binding » en mode « PropertyChanged ». Des fois on préfèrerait une logique de « PropertyChanged » et d’autres fois c’est essentiel. Par exemple, lorsqu’une propriété Booléenne de l’entité est liée, la grille affiche une case à cocher (CheckBox). Comme la propriété n’est pas en mode PropertyChanged, il faut cliquer ailleurs après avoir coché l’information pour que la modification soit transmise à l’entité.

Solution

Dans le « Xaml » qui contient le contrôle de la grille, il faut enregistrer l’évènement « CellChanged ».

 


<igDP:XamDataGrid Name="grdExample" CellChanged="grdExample_CellChanged">

 

Ensuite dans le code, de la page, sous la méthode CellChanged, on place les lignes suivantes :

private void grdExample_CellChanged(object sender, CellChangedEventArgs e)
{
grdExample.ExecuteCommand(DataPresenterCommands.EndEditModeAndAcceptChanges);
grdExample.ExecuteCommand(DataPresenterCommands.StartEditMode);
}

(Note : L’exemple se base sur la version 9.1 ou 9.2)

Ajouter un commentaire

no avatar
Entrez votre nom, alias ou adresse de courriel.
Nous vous incarnerons à partir des services ici-bas.
 

(Affichera votre icône Gravatar)

  Country flag

biuquote
Loading