2012-04-26 4 views
1

내 앱에서 내 미디어 플레이어를 만들고 있습니다. 사용자가 재생할 노래를 선택하면 샘플 미디어와 연결된 메타 데이터 (아티스트, 트랙, 앨범 아트 등)에 링크를 전달할 수 있기를 원합니다. 내가 붙어있는 부분은 데이터를 가져 와서 미디어 플레이어 페이지로 전달하십시오. 여기 내가 지금까지 가지고있는 것이있다.WP7 여러 페이지 간 데이터 전송

선택한 항목을 확인하고 쿼리 문자열에 데이터를 추가하십시오.

업데이트] 나는 미디어에 여러 조각을 전달하는 쿼리 고통을 사용할 수 있는지

 protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
    { 
     base.OnNavigatedTo(e); 

     string releaseName = String.Empty; 
     string releaseImg = String.Empty; 
     string releaseUrl = String.Empty; 

     if (NavigationContext.QueryString.TryGetValue("releaseUrl", out releaseUrl)) 
     { 
      sampleMedia.Source = new Uri(releaseUrl, UriKind.Absolute); 
     } 
    } 

잘 모르겠어요 쿼리 문자열에서 데이터를 가져하는 방법 OnNavigatedTo

public void musicSampleSelectedHandler(object sender, RoutedEventArgs e) 
    { 
     Track selected = (sender as Image).DataContext as Track; 
     ListBoxItem pressedItem = this.listReleaseMain.ItemContainerGenerator.ContainerFromItem(selected) as ListBoxItem; 
     if (pressedItem != null) 
     { 
      string _rT = selected.title; 
      string _rN = selected.release.name; 
      //string _rA = selected.artists; ???? 
      string _rI = selected.images.large.url; 
      string _rS = selected.sampleUrl; 

      this.NavigationService.Navigate(new Uri("/Pages/MediaPage.xaml?releaseName=" + _rN + "&releaseTrack=" + _rT + "&releaseImage=" + _rI 
       + "&releaseSample=" + _rS, UriKind.Relative)); 
     } 
    } 

플레이어 또는 다른 페이지로 데이터를 전달하기 위해 다른 작업을 수행 할 것인지 결정할 수 있습니다. 내 모든 데이터는 웹 클라이언트를 사용하여 웹에서 가져옵니다. 도와 주셔서 감사합니다.

답변

3

QueryString은 Uri를 통해 전달 된 매개 변수의 사전입니다. Uri는 &으로 구분 된 매개 변수를 전달하는 표준 구문을 사용합니다. 다음

this.NavigationService.Navigate(new Uri("/Pages/MediaPage.xaml?releaseUrl=" + releaseUrl + "&releaseImg=" + releaseImg , UriKind.Relative)); 

당신은 다음과 같은이 밖으로 사용하여 뭔가 구문 분석 할 수 있습니다 : 당신이 같은 있었다면 그래서 예에서, 또한

if (NavigationContext.QueryString.TryGetValue("releaseUrl", out releaseUrl)) 
{ 
    sampleMedia.Source = new Uri(releaseUrl, UriKind.Absolute); 
} 

if (NavigationContext.QueryString.TryGetValue("releaseImg", out releaseImg)) 
{ 
    // do something with releaseImg 
} 
+1

을, 당신은 MSDN (HTTP에 대한 문서를 찾을 수 있습니다 : // msdn.microsoft.com/en-us/library/system.windows.navigation.navigationcontext.querystring(v=vs.95).aspx). – nithins

+1

그게 효과가 있습니다. 고마워요! – nos9

+0

괜찮 으면 한 가지 더 질문하십시오. 'Artists'는'Tracks' 클래스 내의 컬렉션이라는 사실을 잊어 버렸습니다. 그 데이터를 어떻게 얻을 수 있을까요? 특히 한 명 이상의 아티스트가 있다면 다음 페이지로 넘길 수 있습니까? 위의 내 업데이트 된 코드를 참조하십시오. thanks – nos9

관련 문제