7
votes

Quelles sont les meilleures pratiques pour Igueconverter?


5 commentaires

Quelles sont les meilleures pratiques pour Igueconverter?


@Amit: mieux tirer ce commentaire sur les exceptions au texte avant.


J'ai ajouté des commentaires dans le code! "Est-ce que ça va de mettre une exception ici ou devrais-je retourner" quelque chose "ici?"


Question connexe: Combien de temps dure un morceau de chaîne?


Est-ce que cela répond à votre question? Meilleure pratique lors de la mise en œuvre d'Igueconvert.Convertback


3 Réponses :


3
votes

Vous avez ignoré cultureinfo lors de l'analyse de la chaîne.

Prenez toujours en compte les informations de culture ont été transmises autrement, il fonctionnerait toujours sur la courroie courante du fil.

Je pourrais donner quelque chose comme "7,34,123" comme entrée, votre code fonctionnerait-il?


0 commentaires

14
votes

Si vous échouez de convertir (valeurs mal formées, types, ...), renvoyez dépendanceProperty.unsetvalue .

Il indique que le convertisseur n'a produit aucune valeur et que la liaison utilise la fallbackValue, si disponible ou la valeur par défaut.

En outre, vous devez convertir des données avec une conversion spécifique à la culture ou des conversions invariantes pour être du côté sûr.


3 commentaires

Dois-je retourner string.empty?


renvoie dépendanceProperty.unsetvalue; Il existe d'autres valeurs de retour que vous pouvez modifier le comportement du moteur de liaison avec. Vous pouvez suivre le lien que j'ai fourni dans ma réponse pour en savoir plus. Voici un échantillon d'utilisation de dépendanceProperty.unsetvalue : msdn.microsoft.com/en-us/library/...


Par Ce lien , vous pouvez Utilisez liaison.donothing si la liaison ne doit pas définir une valeur particulière. Cela devrait être plus utilisé dans des problèmes tels que mulvenuesconverters.



8
votes

Je recommande personnellement à l'aide de convertisseurs singleton. Ensuite, vous n'avez pas besoin de créer une instance à chaque site d'utilisation, mais vous pouvez référencer le convertisseur comme celui-ci:

Converter={x:Static SomeNamespace:SomeConverter.Instance}


0 commentaires