WPF实现列表分页控件的示例代码_第1页
WPF实现列表分页控件的示例代码_第2页
WPF实现列表分页控件的示例代码_第3页
WPF实现列表分页控件的示例代码_第4页
WPF实现列表分页控件的示例代码_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第WPF实现列表分页控件的示例代码项目使用MIT开源许可协议。

新建Pagination自定义控件继承自Control。

正常模式分页在外部套Grid分为0-5列:

Grid.Column0总页数共多少300条。Grid.Column1输入每页显示多少10条。Grid.Column2上一页按钮。Grid.Column3所有页码按钮此处使用ListBox。Grid.Column4下一页按钮。Grid.Column5跳转页1码输入框。

精简模式分页在外部套Grid分为0-9列:

Grid.Column0总页数共多少300条。Grid.Column2输入每页显示多少10条。Grid.Column3条/页。Grid.Column5上一页按钮。Grid.Column7跳转页1码输入框。Grid.Column9下一页按钮。

每页显示与跳转页码数控制只允许输入数字,不允许粘贴。

实现代码

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="10"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="10"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="5"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="5"/

ColumnDefinition

Width="Auto"/

1)Pagination.cs如下:

using

System;

using

System.Collections.Generic;

using

System.Linq;

using

System.Windows;

using

System.Windows.Controls;

using

System.Windows.Input;

using

WPFDevelopers.Helpers;

namespace

WPFDevelopers.Controls

[TemplatePart(Name

=

CountPerPageTextBoxTemplateName,

Type

=

typeof(TextBox))]

[TemplatePart(Name

=

JustPageTextBoxTemplateName,

Type

=

typeof(TextBox))]

[TemplatePart(Name

=

ListBoxTemplateName,

Type

=

typeof(ListBox))]

public

class

Pagination

:

Control

{

private

const

string

CountPerPageTextBoxTemplateName

=

"PART_CountPerPageTextBox";

private

const

string

JustPageTextBoxTemplateName

=

"PART_JumpPageTextBox";

private

const

string

ListBoxTemplateName

=

"PART_ListBox";

private

const

string

Ellipsis

=

"···";

private

static

readonly

Type

_typeofSelf

=

typeof(Pagination);

private

TextBox

_countPerPageTextBox;

private

TextBox

_jumpPageTextBox;

private

ListBox

_listBox;

static

Pagination()

{

InitializeCommands();

DefaultStyleKeyProperty.OverrideMetadata(_typeofSelf,

new

FrameworkPropertyMetadata(_typeofSelf));

}

#region

Override

public

override

void

OnApplyTemplate()

{

base.OnApplyTemplate();

UnsubscribeEvents();

_countPerPageTextBox

=

GetTemplateChild(CountPerPageTextBoxTemplateName)

as

TextBox;

if

(_countPerPageTextBox

!=

null)

{

_countPerPageTextBox.ContextMenu

=

null;

_countPerPageTextBox.PreviewTextInput

+=

_countPerPageTextBox_PreviewTextInput;

_countPerPageTextBox.PreviewKeyDown

+=

_countPerPageTextBox_PreviewKeyDown;

}

_jumpPageTextBox

=

GetTemplateChild(JustPageTextBoxTemplateName)

as

TextBox;

if

(_jumpPageTextBox

!=

null)

{

_jumpPageTextBox.ContextMenu

=

null;

_jumpPageTextBox.PreviewTextInput

+=

_countPerPageTextBox_PreviewTextInput;

_jumpPageTextBox.PreviewKeyDown

+=

_countPerPageTextBox_PreviewKeyDown;

}

_listBox

=

GetTemplateChild(ListBoxTemplateName)

as

ListBox;

Init();

SubscribeEvents();

}

private

void

_countPerPageTextBox_PreviewKeyDown(object

sender,

KeyEventArgs

e)

{

if

(Key.Space

==

e.Key

||

Key.V

==

e.Key

e.KeyboardDevice.Modifiers

==

ModifierKeys.Control)

e.Handled

=

true;

}

private

void

_countPerPageTextBox_PreviewTextInput(object

sender,

TextCompositionEventArgs

e)

{

e.Handled

=

ControlsHelper.IsNumber(e.Text);

}

#endregion

#region

Command

private

static

void

InitializeCommands()

{

PrevCommand

=

new

RoutedCommand("Prev",

_typeofSelf);

NextCommand

=

new

RoutedCommand("Next",

_typeofSelf);

CommandManager.RegisterClassCommandBinding(_typeofSelf,

new

CommandBinding(PrevCommand,

OnPrevCommand,

OnCanPrevCommand));

CommandManager.RegisterClassCommandBinding(_typeofSelf,

new

CommandBinding(NextCommand,

OnNextCommand,

OnCanNextCommand));

}

public

static

RoutedCommand

PrevCommand

{

get;

private

set;

}

public

static

RoutedCommand

NextCommand

{

get;

private

set;

}

private

static

void

OnPrevCommand(object

sender,

RoutedEventArgs

e)

{

var

ctrl

=

sender

as

Pagination;

ctrl.Current--;

}

private

static

void

OnCanPrevCommand(object

sender,

CanExecuteRoutedEventArgs

e)

{

var

ctrl

=

sender

as

Pagination;

e.CanExecute

=

ctrl.Current

}

private

static

void

OnNextCommand(object

sender,

RoutedEventArgs

e)

{

var

ctrl

=

sender

as

Pagination;

ctrl.Current++;

}

private

static

void

OnCanNextCommand(object

sender,

CanExecuteRoutedEventArgs

e)

{

var

ctrl

=

sender

as

Pagination;

e.CanExecute

=

ctrl.Current

ctrl.PageCount;

}

#endregion

#region

Properties

private

static

readonly

DependencyPropertyKey

PagesPropertyKey

=

DependencyProperty.RegisterReadOnly("Pages",

typeof(IEnumerablestring),

_typeofSelf,

new

PropertyMetadata(null));

public

static

readonly

DependencyProperty

PagesProperty

=

PagesPropertyKey.DependencyProperty;

public

IEnumerablestring

Pages

=

(IEnumerablestring)

GetValue(PagesProperty);

private

static

readonly

DependencyPropertyKey

PageCountPropertyKey

=

DependencyProperty.RegisterReadOnly("PageCount",

typeof(int),

_typeofSelf,

new

PropertyMetadata(1,

OnPageCountPropertyChanged));

public

static

readonly

DependencyProperty

PageCountProperty

=

PageCountPropertyKey.DependencyProperty;

public

int

PageCount

=

(int)

GetValue(PageCountProperty);

private

static

void

OnPageCountPropertyChanged(DependencyObject

d,

DependencyPropertyChangedEventArgs

e)

{

var

ctrl

=

d

as

Pagination;

var

pageCount

=

(int)

e.NewValue;

/*

if

(ctrl._jumpPageTextBox

!=

null)

ctrl._jumpPageTextBox.Maximum

=

pageCount;

*/

}

public

static

readonly

DependencyProperty

IsLiteProperty

=

DependencyProperty.Register("IsLite",

typeof(bool),

_typeofSelf,

new

PropertyMetadata(false));

public

bool

IsLite

{

get

=

(bool)

GetValue(IsLiteProperty);

set

=

SetValue(IsLiteProperty,

value);

}

public

static

readonly

DependencyProperty

CountProperty

=

DependencyProperty.Register("Count",

typeof(int),

_typeofSelf,

new

PropertyMetadata(0,

OnCountPropertyChanged,

CoerceCount));

public

int

Count

{

get

=

(int)

GetValue(CountProperty);

set

=

SetValue(CountProperty,

value);

}

private

static

object

CoerceCount(DependencyObject

d,

object

value)

{

var

count

=

(int)

value;

return

Math.Max(count,

0);

}

private

static

void

OnCountPropertyChanged(DependencyObject

d,

DependencyPropertyChangedEventArgs

e)

{

var

ctrl

=

d

as

Pagination;

var

count

=

(int)

e.NewValue;

ctrl.SetValue(PageCountPropertyKey,

(int)

Math.Ceiling(count

*

1.0

/

ctrl.CountPerPage));

ctrl.UpdatePages();

}

public

static

readonly

DependencyProperty

CountPerPageProperty

=

DependencyProperty.Register("CountPerPage",

typeof(int),

_typeofSelf,

new

PropertyMetadata(50,

OnCountPerPagePropertyChanged,

CoerceCountPerPage));

public

int

CountPerPage

{

get

=

(int)

GetValue(CountPerPageProperty);

set

=

SetValue(CountPerPageProperty,

value);

}

private

static

object

CoerceCountPerPage(DependencyObject

d,

object

value)

{

var

countPerPage

=

(int)

value;

return

Math.Max(countPerPage,

1);

}

private

static

void

OnCountPerPagePropertyChanged(DependencyObject

d,

DependencyPropertyChangedEventArgs

e)

{

var

ctrl

=

d

as

Pagination;

var

countPerPage

=

(int)

e.NewValue;

if

(ctrl._countPerPageTextBox

!=

null)

ctrl._countPerPageTextBox.Text

=

countPerPage.ToString();

ctrl.SetValue(PageCountPropertyKey,

(int)

Math.Ceiling(ctrl.Count

*

1.0

/

countPerPage));

if

(ctrl.Current

!=

1)

ctrl.Current

=

1;

else

ctrl.UpdatePages();

}

public

static

readonly

DependencyProperty

CurrentProperty

=

DependencyProperty.Register("Current",

typeof(int),

_typeofSelf,

new

PropertyMetadata(1,

OnCurrentPropertyChanged,

CoerceCurrent));

public

int

Current

{

get

=

(int)

GetValue(CurrentProperty);

set

=

SetValue(CurrentProperty,

value);

}

private

static

object

CoerceCurrent(DependencyObject

d,

object

value)

{

var

current

=

(int)

value;

var

ctrl

=

d

as

Pagination;

return

Math.Max(current,

1);

}

private

static

void

OnCurrentPropertyChanged(DependencyObject

d,

DependencyPropertyChangedEventArgs

e)

{

var

ctrl

=

d

as

Pagination;

var

current

=

(int)

e.NewValue;

if

(ctrl._listBox

!=

null)

ctrl._listBox.SelectedItem

=

current.ToString();

if

(ctrl._jumpPageTextBox

!=

null)

ctrl._jumpPageTextBox.Text

=

current.ToString();

ctrl.UpdatePages();

}

#endregion

#region

Event

///

summary

///

分页

///

/summary

private

void

OnCountPerPageTextBoxChanged(object

sender,

TextChangedEventArgs

e)

{

if

(int.TryParse(_countPerPageTextBox.Text,

out

var

_ountPerPage))

CountPerPage

=

_ountPerPage;

}

///

summary

///

跳转页

///

/summary

private

void

OnJumpPageTextBoxChanged(object

sender,

TextChangedEventArgs

e)

{

if

(int.TryParse(_jumpPageTextBox.Text,

out

var

_current))

Current

=

_current;

}

///

summary

///

选择页

///

/summary

private

void

OnSelectionChanged(object

sender,

SelectionChangedEventArgs

e)

{

if

(_listBox.SelectedItem

==

null)

return;

Current

=

int.Parse(_listBox.SelectedItem.ToString());

}

#endregion

#region

Private

private

void

Init()

{

SetValue(PageCountPropertyKey,

(int)

Math.Ceiling(Count

*

1.0

/

CountPerPage));

_jumpPageTextBox.Text

=

Current.ToString();

//_jumpPageTextBox.Maximum

=

PageCount;

_countPerPageTextBox.Text

=

CountPerPage.ToString();

if

(_listBox

!=

null)

_listBox.SelectedItem

=

Current.ToString();

}

private

void

UnsubscribeEvents()

{

if

(_countPerPageTextBox

!=

null)

_countPerPageTextBox.TextChanged

-=

OnCountPerPageTextBoxChanged;

if

(_jumpPageTextBox

!=

null)

_jumpPageTextBox.TextChanged

-=

OnJumpPageTextBoxChanged;

if

(_listBox

!=

null)

_listBox.SelectionChanged

-=

OnSelectionChanged;

}

private

void

SubscribeEvents()

{

if

(_countPerPageTextBox

!=

null)

_countPerPageTextBox.TextChanged

+=

OnCountPerPageTextBoxChanged;

if

(_jumpPageTextBox

!=

null)

_jumpPageTextBox.TextChanged

+=

OnJumpPageTextBoxChanged;

if

(_listBox

!=

null)

_listBox.SelectionChanged

+=

OnSelectionChanged;

}

private

void

UpdatePages()

{

SetValue(PagesPropertyKey,

GetPagers(Count,

Current));

if

(_listBox

!=

null

_listBox.SelectedItem

==

null)

_listBox.SelectedItem

=

Current.ToString();

}

private

IEnumerablestring

GetPagers(int

count,

int

current)

{

if

(count

==

0)

return

null;

if

(PageCount

=

7)

return

Enumerable.Range(1,

PageCount).Select(p

=

p.ToString()).ToArray();

if

(current

=

4)

return

new[]

{"1",

"2",

"3",

"4",

"5",

Ellipsis,

PageCount.ToString()};

if

(current

=

PageCount

-

3)

return

new[]

{

"1",

Ellipsis,

(PageCount

-

4).ToString(),

(PageCount

-

3).ToString(),

(PageCount

-

2).ToString(),

(PageCount

-

1).ToString(),

PageCount.ToString()

};

return

new[]

{

"1",

Ellipsis,

(current

-

1).ToString(),

current.ToString(),

(current

+

1).ToString(),

Ellipsis,

PageCount.ToString()

};

}

#endregion

}

2)Pagination.xaml如下:

ResourceDictionary

xmlns="/winfx/2006/xaml/presentation"

xmlns:x="/winfx/2006/xaml"

xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore"

xmlns:helpers="clr-namespace:WPFDevelopers.Helpers"

xmlns:controls="clr-namespace:WPFDevelopers.Controls"

ResourceDictionary.MergedDictionaries

ResourceDictionary

Source="Basic/ControlBasic.xaml"/

/ResourceDictionary.MergedDictionaries

Style

x:Key="PageListBoxStyleKey"

TargetType="{x:Type

ListBox}"

BasedOn="{StaticResource

ControlBasicStyle}"

Setter

Property="Background"

Value="Transparent"/

Setter

Property="BorderThickness"

Value="0"/

Setter

Property="Padding"

Value="0"/

Setter

Property="Template"

Setter.Value

ControlTemplate

TargetType="{x:Type

ListBox}"

Border

BorderBrush="{TemplateBinding

BorderBrush}"

BorderThickness="{TemplateBinding

BorderThickness}"

Background="{TemplateBinding

Background}"

SnapsToDevicePixels="True"

ScrollViewer

Focusable="False"

Padding="{TemplateBinding

Padding}"

ItemsPresenter

SnapsToDevicePixels="{TemplateBinding

SnapsToDevicePixels}"/

/ScrollViewer

/Border

ControlTemplate.Triggers

Trigger

Property="IsGrouping"

Value="True"

Setter

Property="ScrollViewer.CanContentScroll"

Value="False"/

/Trigger

/ControlTemplate.Triggers

/ControlTemplate

/Setter.Value

/Setter

/Style

Style

x:Key="PageListBoxItemStyleKey"

TargetType="{x:Type

ListBoxItem}"

BasedOn="{StaticResource

ControlBasicStyle}"

Setter

Property="MinWidth"

Value="32"/

Setter

Property="Cursor"

Value="Hand"/

Setter

Property="HorizontalContentAlignment"

Value="Center"/

Setter

Property="VerticalContentAlignment"

Value="Center"/

Setter

Property="helpers:ElementHelper.CornerRadius"

Value="3"/

Setter

Property="BorderThickness"

Value="1"/

Setter

Property="Padding"

Value="5,0"/

Setter

Property="Margin"

Value="3,0"/

Setter

Property="Background"

Value="{DynamicResource

BackgroundSolidColorBrush}"/

Setter

Property="BorderBrush"

Value="{DynamicResource

BaseSolidColorBrush}"/

Setter

Property="Template"

Setter.Value

ControlTemplate

TargetType="{x:Type

ListBoxItem}"

Border

SnapsToDevicePixels="True"

Background="{TemplateBinding

Background}"

BorderThickness="{TemplateBinding

BorderThickness}"

BorderBrush="{TemplateBinding

BorderBrush}"

Padding="{TemplateBinding

Padding}"

CornerRadius="{Binding

Path=(helpers:ElementHelper.CornerRadius),RelativeSource={RelativeSource

TemplatedParent}}"

ContentPresenter

x:Name="PART_ContentPresenter"

HorizontalAlignment="{TemplateBinding

HorizontalContentAlignment}"

VerticalAlignment="{TemplateBinding

VerticalContentAlignment}"

RecognizesAccessKey="True"

TextElement.Foreground="{TemplateBinding

Foreground}"/

/Border

/ControlTemplate

/Setter.Value

/Setter

Style.Triggers

DataTrigger

Binding="{Binding

.}"

Value="···"

Setter

Property="IsEnabled"

Value="False"/

Setter

Property="FontWeight"

Value="Bold"/

/DataTrigger

Trigger

Property="IsMouseOver"

Value="True"

Setter

Property="BorderBrush"

Value="{DynamicResource

DefaultBorderBrushSolidColorBrush}"/

Setter

Property="Background"

Value="{DynamicResource

DefaultBackgroundSolidColorBrush}"/

Setter

Property="Foreground"

Value="{DynamicResource

PrimaryNormalSolidColorBrush}"/

/Trigger

Trigger

Property="IsSelected"

Value="True"

Setter

Property="Background"

Value="{DynamicResource

PrimaryPressedSolidColorBrush}"/

Setter

Property="TextElement.Foreground"

Value="{DynamicResource

WindowForegroundColorBrush}"/

/Trigger

/Style.Triggers

/Style

ControlTemplate

x:Key="LitePagerControlTemplate"

TargetType="{x:Type

controls:Pagination}"

Border

Background="{TemplateBinding

Background}"

BorderBrush="{TemplateBinding

BorderBrush}"

BorderThickness="{TemplateBinding

BorderThickness}"

Padding="{TemplateBinding

Padding}"

Grid

Grid.ColumnDefinitions

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="10"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="10"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="5"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="5"/

ColumnDefinition

Width="Auto"/

/Grid.ColumnDefinitions

TextBlock

VerticalAlignment="Center"

Text="{Binding

Count,StringFormat=共

{0}

条,RelativeSource={RelativeSource

TemplatedParent}}"/

TextBox

Grid.Column="2"

x:Name="PART_CountPerPageTextBox"

TextAlignment="Center"

VerticalContentAlignment="Center"

Width="60"

MinWidth="0"

input:InputMethod.IsInputMethodEnabled="False"/

TextBlock

Grid.Column="3"

Text="

/

页"

VerticalAlignment="Center"/

Button

Grid.Column="5"

Command="{x:Static

controls:Pagination.PrevCommand}"

Path

Width="7"

Height="10"

Stretch="Fill"

Fill="{Binding

Foreground,RelativeSource={RelativeSource

AncestorType=Button}}"

Data="{StaticResource

PathPrevious}"/

/Button

TextBox

Grid.Column="7"

x:Name="PART_JumpPageTextBox"

TextAlignment="Center"

VerticalContentAlignment="Center"

Width="60"

MinWidth="0"

TextBox.ToolTip

TextBlock

TextBlock.Text

MultiBinding

StringFormat="{}{0}/{1}"

Binding

Path="Current"

RelativeSource="{RelativeSource

TemplatedParent}"/

Binding

Path="PageCount"

RelativeSource="{RelativeSource

TemplatedParent}"/

/MultiBinding

/TextBlock.Text

/TextBlock

/TextBox.ToolTip

/TextBox

Button

Grid.Column="9"

Command="{x:Static

controls:Pagination.NextCommand}"

Path

Width="7"

Height="10"

Stretch="Fill"

Fill="{Binding

Foreground,RelativeSource={RelativeSource

AncestorType=Button}}"

Data="{StaticResource

PathNext}"/

/Button

/Grid

/Border

/ControlTemplate

Style

TargetType="{x:Type

controls:Pagination}"

BasedOn="{StaticResource

ControlBasicStyle}"

Setter

Property="Template"

Setter.Value

ControlTemplate

TargetType="{x:Type

controls:Pagination}"

Border

Background="{TemplateBinding

Background}"

BorderBrush="{TemplateBinding

BorderBrush}"

BorderThickness="{TemplateBinding

BorderThickness}"

Padding="{TemplateBinding

Padding}"

Grid

Grid.ColumnDefinitions

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="*"/

ColumnDefinition

Width="Auto"/

ColumnDefinition

Width="Auto"/

/Grid.ColumnDefinitions

TextBlock

Margin="0,0,15,0"

VerticalAlignment="Center"

Text="{Binding

Count,StringFormat=共

{0}

条,RelativeSource={RelativeSource

TemplatedParent}}"/

StackPanel

Grid.Column="1"

Orientation="Horizontal"

Margin="0,0,15,0"

TextBlock

Text="每页

"

VerticalAlignment="Center"/

TextBox

x:Name="PART_CountPerPageTextBox"

TextAlignment="Center"

Width="60"

MinWidth="0"

VerticalContentAlignment="Center"

FontSize="{TemplateBinding

FontSize}"

input:InputMethod.IsInputMethodEnabled="False"/

TextBlock

Text="

条"

VerticalAlignment="Center"/

/StackPanel

Button

Grid.Column="2"

Command="{x:Static

controls:Pagination.PrevCommand}"

Path

Width="7"

Height="10"

Stretch="Fill"

Fill="{Binding

Foreground,RelativeSource={RelativeSource

AncestorType=Button}}"

Data="{StaticResource

PathPrevious}"/

/Button

ListBox

x:Name="PART_ListBox"

Grid.Column="3"

SelectedIndex="0"

Margin="5,0"

ItemsSource="{TemplateBinding

Pages}"

ItemContainer

ScrollViewer.HorizontalScrollBarVisibility="Hidden"

ScrollViewer.VerticalScrollBarVisibility="Hidden"

ListBox.ItemsPanel

ItemsPanelTemplate

UniformGrid

Rows="1"/

/ItemsPanelTemplate

/ListBox.ItemsPanel

/ListBox

Button

Grid.Column="4"

Command="{x:Static

controls:Pagination.NextCommand}"

Path

Width="7"

Height="10"

Stretch="Fill"

Fill="{Binding

Foreground,RelativeSource={RelativeSource

AncestorType=Button}}"

Data="{StaticResource

PathNext}"/

/Button

StackPanel

Grid.Column="5"

Orientation="Horizontal"

TextBlock

Text="

前往

"

VerticalAlignment="Center"/

TextBox

x:Name="PART_JumpPageTextBox"

TextAlignment="Center"

ContextMenu="{x:Null}"

Width="60"

VerticalContentAlignment="Center"

MinWidth="0"

FontSize="{TemplateBinding

FontSize}"

/

TextBlock

Text="

页"

VerticalAlignment="Center"/

/StackPanel

/Grid

/Border

/ControlTemplate

/Setter.Value

/Setter

Style.Triggers

Trigger

Property="IsLite"

Value="true"

Setter

Property="Template"

Value="{StaticResource

LitePagerControlTemplate}"/

/Trigger

/Style.Triggers

/Style

/ResourceDictionary

3)创建PaginationExampleVM.cs如下:

using

System.Collections.Generic;

using

System.Collections.ObjectModel;

using

System.Linq;

namespace

WPFDevelopers.Samples.ViewModels

public

class

PaginationExampleVM

:

ViewModelBase

{

private

Listint

_sourceList

=

new

Listint

public

PaginationExampleVM()

{

_sourceList.AddRange(Enumerable.Range(1,

300));

Count

=

300;

CurrentPageChanged();

}

public

ObservableCollectionint

PaginationCollection

{

get;

set;

}

=

new

ObservableCollectionint

private

int

_count;

public

int

Count

{

get

{

return

_count;

}

set

{

_count

=

value;

this.NotifyPropertyChange("Count");

CurrentPageChanged();

}

}

private

int

_countPerPage

=

10;

public

int

CountPerPage

{

get

{

return

_countPerPage;

}

set

{

_countPerPage

=

value;

this.NotifyPropertyChange("CountPerPage");

CurrentPageChanged();

}

}

private

int

_current

=

1;

public

int

Current

{

get

{

return

_current;

}

set

{

_current

=

value;

this.NotifyPropertyChange("Current");

CurrentPageChanged();

}

}

private

void

CurrentPageChanged()

{

PaginationCollection.Clear();

foreach

(var

i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论