2012-04-12 10 views
1

ハブタイルに一致する名前とイメージをバインドしようとしています。データはJSONを出力するAPIから取得されます。デシリアライズに問題はなく、クラスにデータを追加するためにforeachループを使用します。 HERESにセットアップ:WP7ハブタイルにテキストとイメージをバインドする問題を修正しました

// Deserialize home page data 
    public void jsonHome_GetDataCompleted(object snder, DownloadStringCompletedEventArgs e) 
    { 
     NewReleasesCharts homeData = JsonConvert.DeserializeObject<NewReleasesCharts>(e.Result); 

     foreach (FeaturedReleases release in homeData.results.featuredReleases) 
     { 
      int releaseID = release.id; 
      string releaseName = release.name; 
      string releaseImg = release.images.large.url; 

      new ReleaseLarge() 
      { 
       url = releaseImg 
      }; 
      new FeaturedReleases() 
      { 
       id = releaseID, 
       name = releaseName 
      }; 
     } 

     this.listRelease.ItemsSource = homeData.results.featuredReleases;   
    } 

ここでは、私のクラス

public class NewReleasesCharts 
{ 
    //public Metadata metadata { get; set; } 
    public ResultHome results = new ResultHome(); 
    public IEnumerator<ResultHome> GetEnumerator() 
    { 
     return this.results.GetEnumerator(); 
    } 
} 

public class ResultHome 
{ 
    public List<FeaturedReleases> featuredReleases { get; set; } 

    //public List<FeaturedCharts> featuredCharts { get; set; } 
    //public List<TopDownloads> topdownloads { get; set; } 
    //public List<MostPopularReleases> mostPopularReleases { get; set; } 
    //public List<Components> components { get; set; } 

    internal IEnumerator<ResultHome> GetEnumerator() 
    { 
     throw new NotImplementedException(); 
    } 
} 

public class FeaturedReleases 
{ 
    public int id { get; set; } 
    public string type { get; set; } 
    public string name { get; set; } 
    public string slug { get; set; } 
    public ReleaseImage images { get; set; } 
} 

public class ReleaseImage 
{ 
    //public ReleaseSmall small { get; set; } 
    public ReleaseMedium medium { get; set; } 
    public ReleaseLarge large { get; set; } 
} 

public class ReleaseLarge 
{ 
    public int width { get; set; } 
    public int height { get; set; } 
    public string url { get; set; } 
    public string secureUrl { get; set; } 
} 

と私のXAML

    <ListBox Grid.Row="0" x:Name="listRelease"> 
        <ListBox.ItemsPanel> 
         <ItemsPanelTemplate> 
          <toolkit:WrapPanel Orientation="Horizontal" /> 
         </ItemsPanelTemplate> 
        </ListBox.ItemsPanel> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          <toolkit:HubTile Title="{Binding name}" Source="{Binding url}" Margin="10" /> 
         </DataTemplate> 
        </ListBox.ItemTemplate> 
       </ListBox> 

は今だけnameハブタイルにまで見せています。私は名前と画像が別のクラスにあるためだと思うが、私は解決策を見つけることができなかった。助けてくれてありがとう。

答えて

1

あなたは

Source="{Binding img}" 

を持っていませんが、どこにも、あなたのモデルでは、imgという名前のパブリックプロパティを持っています。

私は手足に出て行くんだけど、どちらかといえば、あなたの結合の線に沿って何かする必要があります:

Source="{Binding images.medium.url}" 
+0

申し訳ありませんが、それの必要があるURLに設定されて、それはまだ動作しません。 – nos9

+0

決して気にしない。助けてくれてありがとう。 – nos9

関連する問題