2013-07-24 39 views
0

的第一個項目我對從媒體的新聞了Windows Phone項目。 在這個項目上,我有一個panaroma項目。在我的第一個篩選器中,我從我的web API獲得了新聞。如何獲取陣列

我用longlist選擇來獲得這些消息,但我希望把第一/熱/最新新上的大它的圖像和文本的頂部。但我不能同時在我的網格和LongListSelector上正確給出源代碼。

總之,我想列出我的新聞「一個接一個的不滿」,最新的/第一新會大頂部合照。

這裏是我試過;

MainPage.xaml中

<!--Panorama item one--> 
<phone:PanoramaItem Header="Haberler" Foreground="DarkGreen"> 
    <ScrollViewer VerticalScrollBarVisibility="Auto" Background="White"> 
     <StackPanel Orientation="Vertical"> 


         <Grid x:Name="HeadNew"> 
          <TextBlock x:Name="textBlock14" Text="{Binding Path=TITLE}" TextWrapping="Wrap" Margin="20,0" FontSize="{StaticResource PhoneFontSizeLarge}" Foreground="Black"/> 
          <Border Width="400" Height="250"> 
           <Border.Background> 
            <ImageBrush Stretch="Uniform" ImageSource="{Binding Path=MF658370_IMAGE}"/> 
           </Border.Background> 
          </Border> 
         </Grid> 

      <phone:LongListSelector x:Name="MainLongListSelector" Background="White" Margin="-20,0,0,0" Height="Auto" Loaded="MainLongListSelectorLoaded" SelectionChanged="MainLongListSelectorSelectionChanged" toolkit:TiltEffect.IsTiltEnabled="True"> 
       <phone:LongListSelector.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal" Margin="12,2,0,4" Height="Auto" Width="Auto"> 
          <Border Width="126" Height="70"> 
           <Border.Background> 
            <ImageBrush Stretch="Uniform" ImageSource="{Binding Path=MF12670_IMAGE}"/> 
           </Border.Background> 
          </Border> 
          <TextBlock x:Name="textBlock1" Text="{Binding Path=TITLE}" Margin="10,0" FontSize="{StaticResource PhoneFontSizeMedium}" Foreground="Black" /> 
         </StackPanel> 
        </DataTemplate> 
       </phone:LongListSelector.ItemTemplate> 
      </phone:LongListSelector> 

     </StackPanel> 
    </ScrollViewer> 
</phone:PanoramaItem> 

下面是MainPage.xaml.cs中

private void MainLongListSelectorLoaded(object sender, RoutedEventArgs e) 
{ 
    const string url = "MY_WEB_API_URL"; 
    var hWebRequest = (HttpWebRequest)WebRequest.Create(url); 
    hWebRequest.Method = "GET"; 
    hWebRequest.BeginGetResponse(MainLongListSelectorLoadCompleted, hWebRequest); 
} 

private void MainLongListSelectorLoadCompleted(IAsyncResult arr) 
{ 
    var request = (HttpWebRequest)arr.AsyncState; 
    var response = (HttpWebResponse)request.EndGetResponse(arr); 
    using (var streamReader = new StreamReader(response.GetResponseStream())) 
    { 
     _json = streamReader.ReadToEnd(); 
     Headlines = JsonConvert.DeserializeObject<FanatikApiAll.RootObject>(_json); 
    } 
    Deployment.Current.Dispatcher.BeginInvoke(() => 
    { 
     MainLongListSelector.ItemsSource = Headlines.Headline; 
    }); 

    Deployment.Current.Dispatcher.BeginInvoke(() => 
    { 
     HeadNew.DataContext = Headlines.Headline; 
    }); 
} 

回答

1

由於HeadNew不是一個列表控件,您需要分配唯一你需要的項目,不是整個列表。例如,要獲得第一個項目(如果有):

Deployment.Current.Dispatcher.BeginInvoke(() => 
{ 
    HeadNew.DataContext = Headlines.Headline.FirstOrDefault(); 
}); 
+0

沒有命令「FirstOrDefault();」在我的代碼點以後。 –

+1

@ kgms21添加使用'使用System.Linq的;' –

+0

@AlaaMasoud感謝兄弟。 –