在列表视图中访问系统集合列表 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
下一个放映时间。
不能在文本控件中直接显示列表。根据您的需要,您有两种解决方案:
如果您想在同一行显示您的时间,最简单的解决方案是在您的 class 上添加一个 属性 并在那里加入字符串:
public class FetchTiming
{
public List<string> show_times { get; set; }
public string FormattedShowTimes
{
get
{
return string.Join(", ", this.show_times);
}
}
}
(然后你绑定 FormattedShowTimes
而不是 show_times
)
如果你想在不同的行上显示你的时间,那么你应该使用 ItemsControl
:
<ItemsControl ItemsSource="{Binding Path=show_times}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
<ItemsControl.ItemTemplate>
</ItemsControl>
当然,您可以根据需要自定义数据模板。
我正在尝试访问一个列表的内容,具体来说 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 下一个放映时间。
不能在文本控件中直接显示列表。根据您的需要,您有两种解决方案:
如果您想在同一行显示您的时间,最简单的解决方案是在您的 class 上添加一个 属性 并在那里加入字符串:
public class FetchTiming { public List<string> show_times { get; set; } public string FormattedShowTimes { get { return string.Join(", ", this.show_times); } } }
(然后你绑定
FormattedShowTimes
而不是show_times
)如果你想在不同的行上显示你的时间,那么你应该使用
ItemsControl
:<ItemsControl ItemsSource="{Binding Path=show_times}"> <ItemsControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding}" /> </DataTemplate> <ItemsControl.ItemTemplate> </ItemsControl>
当然,您可以根据需要自定义数据模板。