2011-02-15 7 views
0

Je mis quelques propriétés dans le fichier App.xaml.cs que j'utilise pour stocker des données et remplir les zones de texte que je navigue dans ma demande:WP7 - application.current comme app valeur ne peut pas être null

public String appRXName { set; get; } 
    public String appRXNumber { set; get; } 

À l'origine, j'avais un contrôle de pivot qui appelait différentes pages pour rassembler des données, mais j'ai ensuite déplacé cet élément de contrôle de pivot vers sa propre page qui appelle encore d'autres pages pour collecter des données. Maintenant, quand je lance l'application, j'ai une erreur.

Fondamentalement, il fonctionnait quand je l'avais à l'intérieur du contrôle Pivot d'origine. Une fois que je l'ai déplacé vers une page séparée (page pivot calles il) alors j'ai commencé à obtenir cette erreur:

System.ArgumentNullException was unhandled Message=Value can not be null. Parameter name: Text 

Peu importe quelle page je frappe toujours le deuxième élément de la liste affiche l'erreur. J'ai trouvé quelque chose en ligne sur un RootVisual mais je ne sais pas si c'est ce que je regarde ou non. Quelqu'un a-t-il une idée?

+0

Avant que l'exception soit levée, quelles sont les valeurs ** appDosageNotes ** et ** appQuantity **? Est-ce que l'un ou l'autre est nul? –

+0

N'utilisez pas '(Application.Current as App) .Foo', utilisez' ((App) Application.Current) .Foo' à la place. Dans le premier cas, vous obtenez une exception de référence nulle si 'Application.Current' n'est pas' App' - ce qui est faux, car il s'agit en fait d'un type invalide. N'utilisez l'opérateur 'as' que si vous avez besoin de savoir si vous pouvez convertir un type donné et ensuite utiliser l'objet casté. Etes-vous sûr que txtRxNotes/txtQuantity n'est pas nul? –

+0

@Derek - Ils peuvent tous deux être NULL. Cela se produit lorsque j'utilise cet écran pour la première fois pour commencer à ajouter des données. Dois-je envelopper chaque propriété pour vérifier si elle est NULL? Existe-t-il un moyen de faire plus d'un contrôle global? – webdad3

Répondre

2

Le ArgumentNullException est levé car la valeur que vous essayez de définir pour la propriété Text est null, ce que vous ne pouvez pas faire; La propriété Text n'est pas un type Nullable.

Sans savoir comment et quand ces propriétés au niveau de l'application sont définies, il est difficile de fournir une bonne explication des raisons pour lesquelles le comportement est différent depuis votre refactoring, mais vous pouvez soit:

  • Mettez un chèque nul dans le code qui accède à ces propriétés au niveau de l'application.
  • Initialise les propriétés au niveau de l'application à string.Empty dans le constructeur de l'application.
+0

J'ai enveloppé une vérification nulle autour de tout et cela a semblé fonctionner ... Cependant, j'aime la chaîne. Correction d'un problème lorsque j'initialiser les propriétés au niveau de l'application. Je vais essayer ça aussi. Merci de votre aide! – webdad3

Questions connexes