2010-04-22 4 views
3

Lorsque je débogue mon application Silverlight et que j'utilise une liste en interne, je ne peux pas passer la souris sur la liste et voir les éléments dans la liste. Je vois juste la vue RAW de la liste.Débogage Silverlight, aucune vue d'élément de liste

Si je veux voir les articles, je dois écrire mon propre code, ce qui est fastidieux. Est-ce normal pour Silverlight?

J'ai la vue de liste correcte lors du débogage dans les applications normales de console/WPF/....

Exemple: Silverlight (e.Result est un Dictionary<DateTime, decimal>): silverlight http://i39.tinypic.com/sq5ydh.png (lien: click)

Voyez comment il n'y a pas « affichage de la liste dans le premier exemple?

Et dans celui-ci, non Silverlight: non silverlight http://i43.tinypic.com/2nhq4vt.png (lien: click)

Le système est un Windows 7 64 bits, avec Visual Studio 2010 et le SDK Silverlight 4 RC2.

+0

quel est le type de "résultat" dans les GetWeightDataCompletedEventArgs? – Vitalik

+0

Il est censé être un dictionnaire Snake

+0

Recevez-vous le dictionnaire d'une source externe comme un service Web? – Johannes

Répondre

1

Il existe une solution de contournement pour vider le contenu du dictionnaire dans le débogueur.

  1. Pour votre projet, ajoutez une référence à la dll LINQ (par exemple System.Core)

  2. Ajoutez l'instruction suivante à votre fichier source:

    utilisant System.Linq;

  3. Dans la fenêtre de la montre, tapez:

    dic.Take (21)

  4. développer ensuite la ligne de groupe "Résultats View". Cela devrait vous donner la liste familière des paires de clés et de valeurs.

[Cette solution de contournement a été rapporté par rickpastoor sur connect.microsoft.com pour Bug 557741]

0

alt text http://img169.imageshack.us/img169/3142/screen1fc.png

J'ai essayé d'envoyer Dictionnaire de WCF à Silverlight et je peux voir les données dans le débogueur. Donc, cela devrait bien fonctionner pour vous aussi. Peut-être qu'il y a quelque chose à propos de votre code?

Quelle classe exactement "Date" utilisez-vous? Essayez plutôt DateTime comme je l'ai fait.

Heres mon code côté serveur:

public Dictionary<DateTime, decimal> GetDataUsingDataContract() 
{ 
    Dictionary<DateTime, decimal> x = new Dictionary<DateTime, decimal>(); 
    x[DateTime.Now] = 2; 
    x[DateTime.Now.AddDays(2)] = 3; 
    return x; 
} 
+0

La date était DateHeure. J'ai copié votre code, et je n'ai toujours pas de vue de mon dictionnaire. Juste vue brute. :( Je suppose que vous utilisez 32 bits? – Snake

+0

Oui, c'est 32 bits – Fedor

+0

e.Result est System.Collections.Generic.Dictionary dans mon cas, il s'agit de Silverlight 3. – Fedor

1

Dictionnaire de Silverlight <> classe a un attribut [DebuggerTypeProxy] mais il ne fonctionne pas dans la version actuelle du jeu d'outils. Également mentionné dans this thread. Même conseil, rapportez le bogue sur connect.microsoft.com pour qu'ils en soient conscients, espérons qu'il sera corrigé dans la version officielle des outils RTM.

Questions connexes