0

Wenn ich welche bekomme und wenn ich mehr als eine Push-Nachricht bekomme (also in jedem Fall) zeigt diese Methode immer "1".Wie bekomme ich die Nummer von Tile Notification

private void Application_Activated(object sender, ActivatedEventArgs e) 
      { 
       List<ShellTile> pinnedtiles = ShellTile.ActiveTiles.ToList(); 
       MessageBox.Show(pinnedtiles.Count().ToString()); 

      } 

Wie ich testen dies: Ich habe meine Anwendung starten, als ich in den Hintergrund gehen, einige Push-Nachrichten gesendet werden, die Anzahl der neuen Nachrichten mehr als eins ist, als ich meine Anwendung zu aktivieren und in Meldungsfeld bekam ich die gleiche Anzahl - 1 (aber auf Tile Symbol habe ich mehr)

Als ich meine Anwendung zu starten, bevor ich keine Push-Nachrichten empfangen haben, ich habe das gleiche Ergebnis (1)

Was ich tue, falsch ?

AKTUALISIERT:

In diesem Beitrag funktioniert es:

Distinct normal launch with push notification Windows Phone 7

AKTUALISIERT: Es gibt keine Eigenschaft Count:

MessageBox.Show(ShellTile.ActiveTiles.First().Count.ToString()); 

AKTUALISIERT: Gibt es eine andere Möglichkeit, um von Tile zu zählen?

+0

Ich verstehe Ihre Frage nicht. Möchten Sie die Gesamtanzahl der Kacheln oder etwas über eine bestimmte Kachel wissen? – Alex

+0

Ich möchte die Gesamtzahl der Kacheln – revolutionkpi

+0

@revolutionkpi, erhalten Sie immer einen Wert von 1, weil die 'Count' Methode auf eine 'IList '. Mit anderen Worten, Sie zählen die Anzahl der aktiven Anwendungs-Kacheln und nicht die "Anzahl" oben links auf der aktiven Kachel (was ich vermute, dass Sie versuchen, sie zu finden). – ajmccall

Antwort

2

Mit ShellTile können Sie die Werte nicht lesen, um sie nur zu aktualisieren (mit der Methode Update). Wie in den obigen Kommentaren vorgeschlagen, würde ich Ihre App zur Quelle der Daten machen, anstatt zu versuchen, sie aus der Shell-Datei zu lesen.

Ich würde so etwas tun:

Ansichtsmodell - gespeichert Auf isolierte Speicher auf Anfrage Exit/Entladen/wann immer:

public int OutstandingNotification{ get; set;} 

Background für die Live-Kachel Aktualisierung basierend auf Meldungen:

tile.Update(new StandardTileData { Count = App.ViewModel.OutstandingNotification} 

Application Load - Lädt das ViewModel aus dem isolierten Speicher und zeigt den folgenden Wert an:

MessageBox.Show(App.ViewModel.OutstandingNotification.ToString()); 
+0

Wie kann ich Folgendes haben: BackgroundTask zum Aktualisieren der Live-Kachel basierend auf Benachrichtigungen? – revolutionkpi

+0

Ich weiß nichts über Hintergrund-Agenten, da ich noch keine Arbeit mit ihnen gemacht habe. Ich vermutete oben. Der Punkt ist, dass Sie die Daten irgendwo anders als die ShellTile gespeichert haben, die Sie steuern und abfragen können, wie Sie wünschen. – gbanfill

+0

Es gibt eine großartige Nachricht über Hintergrund-Agenten und wie man sie benutzt, um Kacheln/Toast von Peter Torr hier zu aktualisieren: http://blogs.msdn.com/b/ptorr/archive/2011/07/11/background-agents -Teil-1-of-3.aspx – Alex