分页itemscontrol

时间:2014-04-20 14:10:27

标签: wpf itemscontrol

我有一个绑定到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;
    }

1 个答案:

答案 0 :(得分:0)

据我所知,ItemsControl目前不支持Paging。

您可能不会对视图(以及控件)本身进行分页,而是分页您的视频集。您可以实现包含所有视频的主集合。现在,如果你想浏览这个集合,一种方法是第二个集合,它不断被清除并填充主要集合的下10个项目。

您可以从主集合中提取n个项目(images),如下所示:

ObservableCollection<Video> PageCollection = images.Take(n);

如果你没有绑定ItemsControl,你可以查看this指南,该指南是关于DataGrid和ListBox控件的分页