Telerik RadDataPager, как добавить поле размера страницы в пейджер

Я пытаюсь реализовать raddatapager в своем приложении wpf. Кажется, все работает нормально, кроме поля размера страницы. Я могу получить поле размера страницы на своей странице. Он показывает другие вещи, такие как общее количество страниц, следующая предыдущая кнопка, но не поле размера страницы. Я хочу дать пользователю возможность изменять размер страницы с пейджера. Я нашел что-то вроде этого https://demos.telerik.com/aspnet-ajax/listview/examples/paging/pagingwithraddatapager/defaultcs.aspx, но в приложении wpf.

Вот мой код:

        <telerik:RadDataPager x:Name="radDataPager" 
           Source="{Binding DataList}" 
           Grid.Row="3" 
           Grid.Column="1"
           DisplayMode="All"                           
           PageSize="20" />

2 ответа

Кажется, что для этих задач нет встроенного пользовательского интерфейса, но это должно быть достижимо с небольшой модификацией шаблона. Я пробовал это, и, похоже, все работает нормально.

      <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type telerik:RadDataPager}">
                    <Grid>
                        <DataPager:DataPagerPresenter AutoEllipsisMode="{TemplateBinding AutoEllipsisMode}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" DisplayMode="{TemplateBinding DisplayMode}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" ItemCount="{Binding ItemCount, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" NumericButtonStyle="{TemplateBinding NumericButtonStyle}" NumericButtonCount="{TemplateBinding NumericButtonCount}" PageCount="{TemplateBinding PageCount}" PageSize="{Binding PageSize, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" PageIndex="{TemplateBinding PageIndex}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
                        <StackPanel Orientation="Horizontal" Margin="0 0 120 0" HorizontalAlignment="Right">
                            <TextBlock Text="Page Size:" VerticalAlignment="Center"/>
                            <TextBox Height="20" Width="20"
                            Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Mode=TwoWay, Path=PageSize}" />
                        </StackPanel>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>

Могут потребоваться небольшие изменения размещения, чтобы адаптировать его к вашим потребностям.

Для PageSize нет встроенного пользовательского интерфейса. Однако в есть ресурсах Telerikработающий проект и справочная статья, в которой показано, как этого добиться. По сути, вы можете изменить ControlTemplate по умолчанию для элемента DataPagerPresenter.

Другие вопросы по тегам