我有一个绑定到itemscontrol.For的视频列表(Url+title),现在我使用滚动查看器来滚动所有视频,但我设法对项目控件进行分页。这是我的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;
}发布于 2014-04-20 22:26:49
据我所知,ItemsControl目前不直接支持分页。
您不能对View (因此控件)本身进行分页,而是对视频集合进行分页。您可以实现一个包含所有视频的主集合。现在,如果您想要对此集合进行分页,一种方法是使用第二个集合,该集合将不断被清除,并用主集合的下10项填充。
您可以从主集合(images)中提取n个项目的特定计数,如下所示:
ObservableCollection<Video> PageCollection = images.Take(n);如果您未绑定到ItemsControl,可以查看this指南,该指南介绍了DataGrid和ListBox控件的分页
https://stackoverflow.com/questions/23183396
复制相似问题