




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第12课 近代战争与西方文化的扩张 课件-【知识提要】高二历史统编版(2019)选择性必修3 文化交流与传播
- 2025合作伙伴采购协议合同范本
- 2025年度建筑外观升级改造项目合同范本
- 2024年设计师顾客满意度题及答案
- 如何在广告设计中体现品牌主张试题及答案
- 纺织品检验技巧与实践经验分享试题及答案
- 2024年纺织品检验员考试复习资料分享试题及答案
- 汕头中考体育试题及答案
- 社交理论考试题及答案
- 归纳总结纺织品设计师证书考试试题及答案
- 物业管理经理月工作总结
- 谱写全球南方团结合作的新篇章-2025年春季学期形势与政策课件
- 江西省南昌市南昌县2025年中考一模化学试题附答案
- 《铁皮石斛繁育及栽培技术规程》
- 2023年南京大学校聘岗位招聘笔试真题
- UL1557标准中文版-2018半导体UL中文版标准
- 《区域经济学讲》课件
- 尼康D5200说明书简体中文
- 4.1 树与二叉树(教学课件)-高中《信息技术》选修1数据与数据结构同步高效课堂(浙教版)
- GB/T 2982-2024工业车辆充气轮胎规格、尺寸、气压与负荷
- 《现代企业管理学》本科教材
评论
0/150
提交评论