DataBinding Image A_EG_NETWORK_ERROR
Bonjour,
j'ai une erreur SL pas genante mais qui ne fait pas propre.
Donc voici le pb:
J'ai un album photo en silverlight qui se connecte à une base de donnée pour récuperer les info des photo (taille, quand, qui etc...). A pertir de l'ID de la photo, je peux reconstruire une Url du type http://photos.monSiteStockage.com/ID_photo.jpg. J'utilise donc un converter avec du Binding sur la propriété Source d'un control Image. Or au démaragge de l'application, j'ai A_EG_NETWORK_ERROR.
Cela vient surement du Bind car quand je met une Source en dur, plus d'erreur. De plus, mon converter renvois null en cas de problème (mon image ne devrait donc pas essayer de se charger au démarrage).
Enfin, une fois que le DataContext est initialisé, cette erreur disparait.
Quelqu'un a une idée sur l'origine de l'erreur, ou dans le cas contraire un modele de Converter fiable?
Pour info, mon converter converti un int en BitmapImage et renvois null si le parametre d'entrée n'est pas un int.
Propre ou pas propre ! Items ou pas Items ?
Dans la pratique, quand on parle 'Binding', on parle données. Or quand on parle données, cela sous entend 0,1, ou n données. On est donc dans une logique 'Items'. Oui, les deux cas 0 ou 1 données ne sont que des cas particuliers de la logique 'Items'.
Dans une logique 'Items', nos 'Binding' sont généralement implémentés via un DataTemplate. Ce modèle sera instancié autant de fois que d'Items. Ainsi, 0 fois si il n'y a pas d'Items. Donc, aucun risque d'introduire la moindre erreur en cas de non existence de données.
Si l'on considère les choses sous cet angle, on constatera qu'il y a tout ce qu'il faut pour implémenter nos différents 'Binding' de façon systématique, rigoureuse et propre. Si il n'y a pas ce dont on a vraiment de besoin, tout est prévu pour nous en faciliter l'implémentation comme par exemple la possibilité de créer des ses propres contrôles en héritant de 'ItemsControl'.
Ainsi, lorsque l'on veut travailler avec le 'Binding', je considère qu'il y a toujours une bonne question a se poser : 'Suis-je dans une logique Items ?'. Si l'on veut binder un objet spécifique dans une ressource par exemple, la réponse sera non. Pas besoin de se compliquer la vie. Mais bien souvent, la réponse sera oui. Si c'est oui... Utiliser des contrôles 'Items'.