2 votes

Chargement d'une chaîne nulle et Silverlight 4

Je maintiens une application Silverlight 4. Pendant que je n'étais pas au bureau, la structure de la base de données a été modifiée et une table a été supprimée et ses champs combinés dans une autre table existante. Maintenant, je reçois l'erreur suivante après avoir créé un nouvel élément et être passé à l'écran "résumé" :

"La valeur ne peut pas être nulle. Nom du paramètre : Text At System.Windows.Controls.TextBox.set_Text(String value)"

Cela ne se produit qu'avec les entrées nouvellement créées, et non avec les entrées plus anciennes pour lesquelles les informations de l'écran suivant sont complètes (les données ont été converties à partir d'une feuille de calcul Excel et chargées dans la base de données). La fenêtre enfant utilisée pour créer un nouvel enregistrement ne contient pas tous les champs qui ont été ajoutés à la table, car certaines informations ne sont pas disponibles lors de la création de l'enregistrement. Une recherche sur Google a révélé que les chaînes nulles ne peuvent pas être transmises dans Silverlight.

L'écran de synthèse est chargé via le service de domaine ddsSummaryLoadedData. Si je n'inclus pas les champs "nouveaux", les valeurs ne sont pas chargées pour les entrées existantes, mais les nouvelles entrées ne provoquent pas d'erreur. Si je les inclus, les entrées plus anciennes se chargent correctement, mais les nouvelles entrées provoquent l'erreur ci-dessus.

Existe-t-il une solution pour créer les champs vides jusqu'à ce qu'ils soient nécessaires, tout en chargeant les données si elles existent (pour les entrées plus anciennes) ? Ou la fenêtre enfant doit-elle être redessinée ? Je suis nouveau dans Silverlight et j'ai encore beaucoup à apprendre !

0voto

terphi Points 583

Il ne semble pas que vous utilisiez des liaisons pour rendre votre vue, sinon les valeurs nulles seront traitées de manière élégante. Si vous définissez la propriété Text manuellement dans le code, utilisez l'opérateur en cascade pour vérifier que vous ne soumettez pas une valeur nulle.

myTextBox.Text = myModelValue.FirstName ?? string.Empty;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X