2014-01-22 1 views
1
private void w_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 

    if (!string.IsNullOrEmpty(e.Result)) 
    { 
     //Parse JSON result as POCO 
     var root1 = JsonConvert.DeserializeObject<RootObject>(e.Result); 
     var root2 = JsonConvert.DeserializeObject<Headline>(e.Result); 
     lstShow.ItemsSource = root1.headlines; 
     // lstShow.ItemsSource = root2.images; 
    } 
} 

Я пытаюсь добавить множители источников в свой список 'lstShow'. Это мой xaml:Как добавить многократные источники данных в listbox в C#

<ListBox x:Name="lstShow" FontFamily="Arial Black" VerticalAlignment="Center" Margin="-6,0,0,-26" Height="610" RenderTransformOrigin="0.5,0.5" Background="{x:Null}" Opacity="0.8"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Button Style="{StaticResource ButtonStyle1}" Tag="{Binding News}" Width="450" Height="Auto" Background="Black" BorderBrush="Transparent" FontWeight="Bold" FontSize="23" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,0,0,5" Opacity="0.95" Click="news_click" Foreground="White"> 
        <StackPanel> 
         <Image Source="{Binding url}" Height="100" Width="200"/> 
        <TextBlock TextWrapping="Wrap" FontFamily="Segoe WP Black" Foreground="White" FontSize="18" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextAlignment="Left" Width="350" Height="150"> 
         <Run FontSize="23" Text="{Binding headline}" /> 
         <LineBreak/> 
         <Run Text="{Binding description}" FontWeight="Normal" FontSize="16" FontFamily="Segoe WP SemiLight"/> 
         </TextBlock> 
        </StackPanel> 
       </Button> 
       </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 

Проблема в том, что я не могу добавить несколько элементов в свой список. Я хочу добавить root1 и root2 в свой список. Пожалуйста, помогите, спасибо

public class Headline 
{ 
public string headline { get; set; } 
public List<object> keywords { get; set; } 
public string lastModified { get; set; } 
public bool premium { get; set; } 
public string mobileStory { get; set; } 
public Links links { get; set; } 
public string type { get; set; } 
public List<object> related { get; set; } 
public int id { get; set; } 
public string story { get; set; } 
public string title { get; set; } 
public string linkText { get; set; } 
public string byline { get; set; } 
public string description { get; set; } 
public List<object> images { get; set; } 
public List<Category> categories { get; set; } 
public string published { get; set; } 
public List<object> video { get; set; } 

}

public class RootObject 
{ 
public string timestamp { get; set; } 
public int resultsOffset { get; set; } 
public string status { get; set; } 
public int resultsLimit { get; set; } 
public int resultsCount { get; set; } 
public List<Headline> headlines { get; set; } 

}

я хочу, чтобы добавить список 'заголовки' из RootObject и списка 'категорий' от Заголовок к ListBox.

+2

Вы пытались комбинировать 'root1' и' root2' перед установкой 'ItemSource'? Как связаны два списка? Вы хотите просто сбросить полное содержимое обоих списков в 'ListBox'? –

+0

@GrantWinney yes Я хочу сбросить полное содержимое обоих списков в ListBox. Я отредактировал свой вопрос. какие-либо предложения? – Nachiket

ответ

0

Вы не показали Category класс, так что я буду делать вид, что выглядит следующим образом:

public class Category 
{ 
    public string Name { get; set; } 
    public int Id { get; set; } 
} 

Вы можете выбрать все поля, которые вы хотите от заголовков, а затем расплющить список категорий:

var ro = root1.headlines.Select(x => new 
     { 
      x.byline, 
      x.description, 
      x.lastModified, 
      ... 
      ... 
      categories = string.Join(", ", x.categories.Select(y => y.Name)) 
     }).ToList(); 
+0

Спасибо за ваш ответ, я попытался объединить эти строки, я получил эту ошибку: \t Аргумент экземпляра: невозможно преобразовать из 'System.Collections.Generic.IEnumerable ' в 'System.Linq.IQueryable '\t C: \ Users \ thewarrir0r9 \ Downloads \ Sports Live \ Sports Live \ football.xaml.cs Спорт Live – Nachiket

+0

@Nachiket Отредактировано моим ответом. –

Смежные вопросы