我有一个绑定到itemscontrol的视频列表(Url +标题)。现在我使用滚动查看器滚动所有视频,但我设法页面我的itemscontrol。 这是我的itemscontrol:
<ItemsControl x:Name="_imageList" HorizontalAlignment="Right" Margin="0,10,10,10" Width="804" >
<ItemsControl.Template>
<ControlTemplate>
<ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5" IsItemsHost="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<!--<DataTemplate.Resources>
<Image x:Key="image" Source="{Binding thumbnail}" />
</DataTemplate.Resources>-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Click="btn_Clicked" Margin="10,20,0,0" BorderThickness="0" Height="100" Width="200">
<Button.Background>
<ImageBrush ImageSource="{Binding thumbnail}" />
</Button.Background>
</Button>
<TextBlock Grid.Row="1" x:Name="nom" Margin="10,0,0,0" TextAlignment="Center" Text="{Binding title}" VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
有关如何做到这一点的想法? 这是背后的代码
public void Images(int id)
{
var images = new ObservableCollection<Video>();
var wcf = new ServiceReferenceVideo.VideoServiceClient();
foreach (var item in wcf.GetKidVideos(id))
{
images.Add(item);
}
_imageList.ItemsSource = images;
}
答案 0 :(得分:0)
据我所知,ItemsControl目前不支持Paging。
您可能不会对视图(以及控件)本身进行分页,而是分页您的视频集。您可以实现包含所有视频的主集合。现在,如果你想浏览这个集合,一种方法是第二个集合,它不断被清除并填充主要集合的下10个项目。
您可以从主集合中提取n个项目(images
),如下所示:
ObservableCollection<Video> PageCollection = images.Take(n);
如果你没有绑定ItemsControl,你可以查看this指南,该指南是关于DataGrid和ListBox控件的分页