Как получить номер из Tile Notification - PullRequest
0 голосов
/ 26 марта 2012

Когда я получаю любое и когда я получаю более одного push-сообщения (так или иначе), этот метод всегда показывает «1».

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

            }

Как я тестирую это: я запускаю свое приложение, затем иду в фоновый режим, отправляю некоторые push-сообщения, количество новых сообщений больше одного, чем я активирую свое приложение и в окне сообщенияЯ получил тот же номер - 1 (но на значке Tile у меня есть больше)

Когда я запускаю свое приложение в первый раз, до того, как я получил какие-либо push-сообщения, у меня тот же результат (1)

Что я делаю не так?

ОБНОВЛЕНО:

В этом посте это работает:

Отличительный нормальный запуск с push-уведомлением Windows Phone7

ОБНОВЛЕНО: Нет свойства Count:

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

ОБНОВЛЕНО: Есть ли другой способ получить счет отПлитка

1 Ответ

2 голосов
/ 26 марта 2012

ShellTile не позволяет читать значения только для их обновления (используя метод Обновить ). Как кто-то предложил в комментариях выше, я бы сделал ваше приложение источником данных, а не пытался читать их из шеллтиля.

Я бы сделал что-то вроде этого:

ViewModel - сохраняется в изолированном хранилище при выходе из приложения / выгрузке / всякий раз, когда:

public int OutstandingNotification{ get; set;}

BackgroundTask для обновления плитки Live на основе уведомлений:

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

Загрузка приложения - загружает ViewModel из изолированного хранилища и отображает значение:

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