Windows Presentation Foundation lie les contrôles d'interface directement aux propriétés du modèle, et les conversions de types personnalisées passent par l'interface IValueConverter avec ses méthodes Convert et ConvertBack à la sémantique notoirement ambiguë. L'exemple officiel de Microsoft convertit un Color en SolidColorBrush et renvoie simplement null dans ConvertBack, l'opération inverse n'ayant pas de sens.
Une soumission d'une lectrice prénommée Fredrika montre où cela mène en pratique. Lier une zone de texte à un champ double? fonctionne presque tout seul, sauf que le convertisseur intégré de WPF refuse de traiter une chaîne vide comme null. Un collègue a donc écrit un StringToDoubleConverter : Convert se contente de caster la valeur en double? et la renvoie telle quelle, tandis que ConvertBack prend la chaîne de la zone de texte, vérifie si elle vaut string.Empty et renvoie alors null — sinon il retourne la chaîne brute, laissant le parsing réel aux mécanismes internes du framework.
L'auteur Remy Porter peine à attribuer le WTF à un seul coupable : l'API de conversion de WPF lui déplaît par principe, cette implémentation aussi, et nommer les deux variables 'parsed' n'éclaire rien. Traiter les zones de texte vides comme null est sans doute correct ici, concède-t-il, mais il soupçonne des problèmes à venir. Sa conclusion, sans joli nœud : il n'aime tout simplement rien de tout cela.
Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
En attente de ton clic …
·