在列表视图中访问系统集合列表 phone 8.1 none silverlight

Access System Collection list within a listview phone 8.1 none silverlight

我正在尝试访问一个列表的内容,具体来说 show_times 现在我已经走到这一步,它显示在我想要的电影院名称下方,但它只显示 System.Collection 变量而不是数据。

private async void listViewShowtimes_Loaded(object sender, RoutedEventArgs e)
 {
        popcornpk_Dal _dal = new popcornpk_Dal();
        MovieDetail _showTimes = await _dal.GetMovieShowtimesAsync();
        var listView = (ListView)sender;
        listView.ItemsSource = _showTimes.fetch_timing.ToList();     


}

现在我需要的是出现在电影院名称下方的列表,我认为以下内容可以做到这一点,但它没有

<Pivot x:Name="myPivot">
        <PivotItem x:Name="pvtMoveDetails" Header="movie details" Margin="28,0,10,22.5" >
            <StackPanel Height="505">

                <Grid Grid.Row="0">
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition  />
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition/>
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Image x:Name="moveImage"  Grid.Row="0" Grid.Column="0"  Source="{Binding image}" HorizontalAlignment="Left" Height="186"    Width="112"/>


                    <TextBlock FontSize="13" x:Name="txtTtile" HorizontalAlignment="Left" Grid.Row="0" Grid.Column="1"  TextWrapping="Wrap" VerticalAlignment="Top" Width="212" Foreground="White" Height="29"  Text="txttitle"/>

                    <TextBlock Grid.Row="3" Grid.Column="0" Text="Description"></TextBlock>
                    <TextBlock  Grid.Row="3" Grid.Column="0"  Grid.ColumnSpan="3"  FontSize="13" x:Name="txtPlot" Text="{Binding Description}" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Width="371" Foreground="White" Height="247"  />



                </Grid>
            </StackPanel>
        </PivotItem>


        <PivotItem x:Name="pvtShowTimes" Header="showtimes">


                <ListView x:Name="listViewShowtimes" ItemsSource="{Binding}" Loaded="listViewShowtimes_Loaded">
                    <ListView.ItemTemplate>

                        <DataTemplate>

                        <Grid Grid.Row="0">
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                                <RowDefinition  />
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                                <ColumnDefinition />
                            </Grid.ColumnDefinitions>

                                <TextBlock FontSize="13"   Grid.Row="0" Grid.ColumnSpan="2" Grid.Column="0"  x:Name="txtshowtime"  Text="{Binding theater_name}" HorizontalAlignment="Left"  TextWrapping="Wrap" VerticalAlignment="Top" Width="212" Foreground="White" Height="29" />
                            <TextBlock FontSize="13" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" x:Name="txtshow_times"  Text="{Binding show_times}" HorizontalAlignment="Left"  TextWrapping="Wrap" VerticalAlignment="Top" Width="212" Foreground="White" Height="29" />


                        </Grid>
                    </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>

        </PivotItem>
        <!-- Add more pivot items if your View calls for it -->
    </Pivot>

我的 GetShowTimesAsync 调用是

public async Task<MovieDetail> GetMovieShowtimesAsync()
{
        string jsonresult = await WCFRESTServiceCall("GET", "movie_details");
        var jarray = JsonConvert.DeserializeObject<MovieDetail>(jsonresult);


        return jarray;
}

Class 是

    public class MovieDetails
    {
        public string id { get; set; }
        public string name { get; set; }
        public string description { get; set; }
        public string image { get; set; }
        public string secondry_images { get; set; }
        public string actor { get; set; }
        public string actoress { get; set; }
        public string director { get; set; }
        public string music_director { get; set; }
        public string release_date { get; set; }
        public string tags { get; set; }
        public string age_restriction { get; set; }
        public string box_office { get; set; }
        public string official_site { get; set; }
        public string duration { get; set; }
        public string writers { get; set; }
        public int imdb { get; set; }
        public string status { get; set; }
        public string language { get; set; }
        public string created { get; set; }
        public string modified { get; set; }
        public string movie_category_id { get; set; }
        public string slug { get; set; }
        public string movie_show_time_id { get; set; }
        public string theatre_movie_screen_id { get; set; }
        public string videous { get; set; }
        public string videos { get; set; }
        public string comming_soon { get; set; }
        public int avg { get; set; }
        public string movie_details_url { get; set; }
    }

    public class FetchTiming
    {
        public string id { get; set; }
        public string theater_name { get; set; }
        public string address { get; set; }
        public List<string> show_times { get; set; }
        public string screen_id { get; set; }
        public string title { get; set; }
    }

    public class MovieDetail
    {
        public MovieDetails movie_details { get; set; }
        public List<FetchTiming> fetch_timing { get; set; }
    }

以下是哈佩宁

理想情况下,我希望能够做到的是

电影院名称 放映时间:9:30、10:30 等 然后是 Nxt Cinema 下一个放映时间。

不能在文本控件中直接显示列表。根据您的需要,您有两种解决方案:

  1. 如果您想在同一行显示您的时间,最简单的解决方案是在您的 class 上添加一个 属性 并在那里加入字符串:

    public class FetchTiming
    {
        public List<string> show_times { get; set; }
        public string FormattedShowTimes 
        {
            get
            {
                return string.Join(", ", this.show_times);
            }
        }
    }
    

    (然后你绑定 FormattedShowTimes 而不是 show_times

  2. 如果你想在不同的行上显示你的时间,那么你应该使用 ItemsControl :

    <ItemsControl ItemsSource="{Binding Path=show_times}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding}" />
            </DataTemplate>
        <ItemsControl.ItemTemplate>
    </ItemsControl>
    

    当然,您可以根据需要自定义数据模板。