Exception levée par la cible d'un appel : référence Null. Pas de détails

Je suis en train d'ajouter des boutons de manière dynamique dans un StackPanel, selon une réponse JSON que je reçois de mon Node.js l'API. Je lis ce tableau JSON dans un tableau d'objets, objet ayant leur classe de mettre tous les attributs dans le bon endroit. Puis, dans un foreach, je veux construire boutons en utilisant les informations que j'ai mis dans mon tableau d'objets. Notez que le tableau d'objets contient les attributs de bonnes. Si j'essaie simplement de faire un MessageBox.Show(item.name)dans mon foreach, il affichera tous les noms de tous mes objets. Aucune valeur n'est nul, j'ai vérifié trois fois.

Ici est de savoir comment je créer les boutons :

ItemList[] items = JsonConvert.DeserializeObject<ItemList[]>(jsonString);
Dispatcher.BeginInvoke(new Action(() =>
{
    foreach (ItemList item in items)
    {
        Button ItemName = new Button();
        //defining properties of the button, like width, etc..
        ItemName.Content = item.title;
        ItemName.Name = item.id;
        //Will add Click event.
        ItemPanel.Children.Add(ItemName);
    }
}));

Et en essayant, je reçois un TargetInvocationException :

[Système.De la réflexion.TargetInvocationException {Système.De la réflexion.TargetInvocationException: une Exception a été levée par la cible d'un appel. ---> Système.NullReferenceException: la référence d'Objet n'est pas définie à une instance d'un objet.

Pourquoi est-ce ? Mystère. J'ai essayé tout simplement de créer le bouton de l'objet et de l'ajouter dans mon StackPanel sans rien faire d'autre, et l'erreur est la même.

Ce que je fais mal ? Comment se débarrasser de cette ? J'ai déjà fait des éléments dynamiques comme ça dans une autre application, et qui était à l'œuvre.

La fonction de création de boutons est appelé à la fin de la fonction que le JSON à partir de l'api à l'aide d'une requête HTTP. Que la requête HTTP de la fonction est appelée dans la méthode OnNavigatedTo (ouais, c'est bizarre, mais c'est la seule façon que j'ai trouvée automatiquement les fonctions d'appel lorsque la page est atteint, à l'aide de variables provenant de la méthode OnNavigatedTo. Je l'ai fait sur d'autres pages, et ça fonctionne (si ce n'est pas la création de boutons, juste en modifiant les textblocks).

Voici le message d'erreur :

System.Reflection.TargetInvocationException: 
Exception has been thrown by the target of an invocation. ---> 
System.NullReferenceException: Object reference not set to an instance of an object.
 at CubbyHole_Mobile.BrowseFiles.<>c__DisplayClass1.b__0() 
--- End of inner exception stack trace ---
 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
 at System.Reflection.RuntimeMethodInfo.UnsafeInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
 at System.Delegate.DynamicInvokeImpl(Object[] args)
 at System.Windows.Threading.DispatcherOperation.Invoke()

Et ici, c'est la trace de la pile :

CubbyHole Mobile.DLL!CubbyHole_Mobile.App.Application_UnhandledException(object sender, System.Windows.ApplicationUnhandledExceptionEventArgs e) Ligne 100 C# 
System.Windows.ni.dll!MS.Internal.Error.CallApplicationUEHandler(System.Exception e) Inconnu 
System.Windows.ni.dll!MS.Internal.Error.IsNonRecoverableUserException(System.Exception ex, out uint xresultValue) Inconnu
System.Windows.ni.dll!System.Windows.Threading.DispatcherOperation.Invoke() Inconnu 
System.Windows.ni.dll!System.Windows.Threading.Dispatcher.Dispatch(System.Windows.Threading.DispatcherPriority priority) Inconnu 
System.Windows.ni.dll!System.Windows.Threading.Dispatcher.OnInvoke(object context) Inconnu 
System.Windows.ni.dll!System.Windows.Hosting.CallbackCookie.Invoke(object[] args) Inconnu 
System.Windows.RuntimeHost.ni.dll!System.Windows.RuntimeHost.ManagedHost.InvokeDelegate(System.IntPtr pHandle, int nParamCount, System.Windows.Hosting.NativeMethods.ScriptParam* pParams, System.Windows.Hosting.NativeMethods.ScriptParam* pResult) Inconnu

(Désolé, français VS, mais doit être lisible)

Aussi, l'erreur est générée lorsque vous essayez d'ajouter le nouveau point de l'existant StackPanel, mais pas d'arrêt sur cette ligne. Il en va de même de l'application.xaml.cs dans le UnhandledException méthode, et arrêter avec le Débogueur.Pause(); (Comme presque chaque erreur que j'ai eu en travaillant sur cette).

Presque tous les cas de NullReferenceException sont les mêmes. Veuillez voir "Ce qui est une exception NullReferenceException .NET?" pour obtenir des conseils.
Où est la trace de la pile? Où est la pleine exception de sortie?
La ligne est en train de jeter de l'exception? Besoin de plus d'infos.
est ItemPanel null? Ou ItemPanel.Children null pour une raison quelconque? Vous devriez être capable de mettre un point de rupture dans là et trouver la valeur est null, ou au moins la ligne la ligne fautive.

OriginalL'auteur YumeYume | 2014-06-15