Améliorez la lisibilité de votre code et simplifiez vous la vie avec NotifyPropertyWeaver
Quand vous réalisez votre ViewModel pour une application WPF, Windows Phone ou Silverlight, vous utilisez sans cesse OnPropertyChanged et avez à créer un code ressemblant très vite à ceci :
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string givenNames;
public string GivenNames
{
get { return givenNames; }
set
{
if (value != givenNames)
{
givenNames = value;
OnPropertyChanged("GivenNames");
OnPropertyChanged("FullName");
}
}
}
private string familyName;
public string FamilyName
{
get { return familyName; }
set
{
if (value != familyName)
{
familyName = value;
OnPropertyChanged("FamilyName");
OnPropertyChanged("FullName");
}
}
}
public string FullName
{
get
{
return string.Format("{0} {1}", GivenNames, FamilyName);
}
}
public virtual void OnPropertyChanged(string propertyName)
{
var propertyChanged = PropertyChanged;
if (propertyChanged != null)
{
propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Alors que de base, vous pourriez très bien avoir ceci :
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public string GivenNames { get; set; }
public string FamilyName { get; set; }
public string FullName
{
get
{
return string.Format("{0} {1}", GivenNames, FamilyName);
}
}
}
Pourquoi s’embêter avec tout ça ? Personnellement, je trouve ça chiant, long, et ça réduit fortement la lisibilité de mon code en me retrouvant avec 52 lignes de code au lieu de 16.
En lisant un article de Scott Hanselman sur sa première expérience de développement sur Windows Phone 7, j’ai découvert NotifyPropertyWeaver. Un plugin pour Visual Studio que j’ai trouvé réellement pratique et que j’ai donc décidé de partager avec vous.
Mais que fait NotifyPropertyWeaver ?
NotifyPropertyWeaver ajoute automatiquement un tâche au MSBuild qui, juste après la compilation, va modifier votre code lui même afin d’ajouter tout ce qui est nécessaire à la notification de votre ViewModel. Tout ce qu’il vous reste à faire, c’est implémenter INotifyPropertyChanged.
Vous n’avez plus qu’à écrire le second code que je vous ai donné ci-dessus, et une fois compilé, il ressemblera au premier. Magique non ?
Installation
Commencez par installer NotifyPropertyWeaver en utilisant le Package Manager Console ou le Dialog de Nuget.
- Via la Package Manager Console, utilisez la commande install-package notifyPropertyWeaver
- Via le manager de packages Nuget, recherchez simplement “NotifyPropertyWeaver” et cliquez sur installer.
Utilisation
Écrivez le code de votre ViewModel simplement, en y insérant les propriétés sans chichis, juste ce dont vous avez besoin, comme le second exemple de code de cet article. N’oubliez pas d’implémenter INotifyPropertyChanged comme suis :
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
Et voilà, c’est tout ce que vous avez à faire, rien de plus ! En espérant que cet outil vous aidera et qu’il sera, comme pour moi, ce genre de petit plus qu’on apprécie fortement en tant que développeur fainéant ![]()
-
http://www.renauddumont.be/ Renaud Dumont
-
http://www.kevinrapaille.com Kévin Rapaille
-
http://www.renauddumont.be/ Renaud Dumont
-
-
-
http://www.renauddumont.be/ Renaud Dumont
-
http://www.kevinrapaille.com Kévin Rapaille
-








