0

언제든지 하나 이상의 푸시 메시지가 표시되면 (이 경우 어떤 경우에도)이 방법은 항상 "1"을 표시합니다. 타일 알림에서 번호를 가져 오는 방법

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

      } 

어떻게이 테스트 한 : 나는 배경으로가는 것보다, 새 메시지의 수는 하나 이상의, 나는 내 응용 프로그램을 활성화하고 메시지 상자에 내가 가진 것보다 몇 가지 푸시 메시지를 보내, 내 응용 프로그램을 시작 같은 번호 - 1 (그러나 타일 아이콘을 좀 더이)

내가, 내 응용 프로그램을 처음 시작 내가 어떤 푸시 메시지를 받았습니다 전에, I (1) 내가 잘못

를하고있는 중이 야 어떻게 같은 결과가

?

업데이트 :

이 게시물에서는 작동 :

Distinct normal launch with push notification Windows Phone 7

업데이트 :

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

업데이트 : 더 Count 속성이 없습니다 타일에서 개수를 계산하는 다른 방법이 있습니까?

+0

귀하의 질문에 대한 이해가되지 않습니다. 특정 타일에 대한 타일의 총 개수를 알고 싶습니까? – Alex

+0

전체 타일 수를 – revolutionkpi

+0

@revolutionkpi로 지정하려면 'IList '의 'Count'메서드가 사용되므로 항상 값 1이됩니다. 즉, 활성 타일의 왼쪽 상단에있는 "숫자"가 아닌 활성 타일의 수를 계산합니다 (찾으려는 것으로 가정합니다). – ajmccall

답변

2

ShellTile에서는 값을 읽을 수만있는 값을 읽을 수 없습니다 (Update 메서드 사용). 위의 주석에서 제안한 누군가가 셸타 (shelltile)에서 읽으 려하지 않고 데이터의 출처로 삼을 것입니다.

나는 이런 식으로 뭔가 할 것 :

뷰 모델 - 응용 프로그램 종료/언로드 /마다에 격리 된 저장소에 저장 : 통지를 기반으로 라이브 타일을 업데이트하는

public int OutstandingNotification{ get; set;} 

BackgroundTask :

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

응용 프로그램로드 - 격리 된 저장소에서 ViewModel을로드하고 값을 표시합니다.

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

어떻게 알림을 기반으로 라이브 타일을 업데이트하기위한 BackgroundTask를 사용할 수 있습니까? – revolutionkpi

+0

백그라운드 에이전트에 대해 알지 못합니다. 아직 그와 관련된 작업을 수행하지 않았습니다. 나는 위에서 짐작했다. 핵심은 사용자가 원하는대로 제어하고 쿼리 할 수있는 ShellTile이 아닌 다른 곳에 데이터를 저장했다는 것입니다. – gbanfill

+0

피터 토르 (Peter Torr)가 백그라운드 에이전트를 다루는 위대한 게시물과 타일/쇼 토스트를 업데이트하는 데 사용하는 방법은 다음과 같습니다. http://blogs.msdn.com/b/ptorr/archive/2011/07/11/background-agents -part-1-of-3.aspx – Alex