簡體   English   中英

將嵌套的JSON綁定到XAML中的列表框

[英]Binding nested JSON to listbox in XAML

這是我的情態

 public class main
    {
        public List<categories> categorieslist { get; set; }
    }

    public class categories
    {
        public int categoryId { get; set; }
        public string categoryName { get; set; }
        public List<pdf> pdfdocs { get; set; }
        public List<video> videoFiles { get; set; }
    }

    public class pdf
    {
        public string URL { get; set; }
        public string language { get; set; }
        public string createdDate { get; set; }
        public bool isFavorite { get; set; }
        public bool isRead { get; set; }
    }

我正在使用JSON.NET反序列化

 main mainobj = JsonConvert.DeserializeObject<main>(App.hello);

我需要顯示選定類別的PDF列表,我使用LINQ來過濾特定類別,我無法綁定PDF列表。

 pdf.ItemsSource = App.mainobj.categorieslist.Where(i => i.categoryId.Equals(s));

  <ListBox x:Name="pdf" Margin="0,0,0,363"  ItemsSource="{Binding}" Foreground="White">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBlock Text="{Binding pdf.URL}" Foreground="White"></TextBlock>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
<ListBox ItemsSource="{Binding categorieslist}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding categoryId }" FontSize="20" />

                <ItemsControl ItemsSource="{Binding pdf}" Margin="0 20 0 0">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Border BorderBrush="Blue" BorderThickness="2">
                                <TextBlock Text="{Binding URL }" FontSize="20" />
                            </Border>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
                <ItemsControl ItemsSource="{Binding videoFiles}" Margin="0 20 0 0">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Border BorderBrush="Red" BorderThickness="2">
                                <TextBlock Text="{Binding URL}" FontSize="20" />
                            </Border>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM