




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第WPF實現(xiàn)列表分頁控件的示例代碼項目使用MIT開源許可協(xié)議。
新建Pagination自定義控件繼承自Control。
正常模式分頁在外部套Grid分為0-5列:
Grid.Column0總頁數(shù)共多少300條。Grid.Column1輸入每頁顯示多少10條。Grid.Column2上一頁按鈕。Grid.Column3所有頁碼按鈕此處使用ListBox。Grid.Column4下一頁按鈕。Grid.Column5跳轉(zhuǎn)頁1碼輸入框。
精簡模式分頁在外部套Grid分為0-9列:
Grid.Column0總頁數(shù)共多少300條。Grid.Column2輸入每頁顯示多少10條。Grid.Column3條/頁。Grid.Column5上一頁按鈕。Grid.Column7跳轉(zhuǎn)頁1碼輸入框。Grid.Column9下一頁按鈕。
每頁顯示與跳轉(zhuǎn)頁碼數(shù)控制只允許輸入數(shù)字,不允許粘貼。
實現(xiàn)代碼
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
///
跳轉(zhuǎn)頁
///
/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)創(chuàng)建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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康線上教程課件下載網(wǎng)
- 國一花木蘭數(shù)學(xué)試卷
- 2025年中國煉膠機械行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報告
- 2021-2026年中國轉(zhuǎn)基因農(nóng)業(yè)市場供需現(xiàn)狀及投資戰(zhàn)略研究報告
- 2024-2030全球水源熱工業(yè)熱泵行業(yè)調(diào)研及趨勢分析報告
- “以竹代塑”主要產(chǎn)品名錄(2025年版)
- 醫(yī)院醫(yī)保政策解讀課件
- 綠色轉(zhuǎn)型觀察|中國基礎(chǔ)設(shè)施公募在可再生能源領(lǐng)域進展研究 2025
- 營口市公共場所管理辦法
- 藍天救援隊車牌管理辦法
- 爆破三員培訓(xùn)
- 浙江首考2025年1月普通高等學(xué)校招生全國統(tǒng)一考試 歷史 含答案
- 2025重慶電費收費標(biāo)準(zhǔn)
- 露天采石場應(yīng)急預(yù)案
- 2025-2030中國水溶性肥料行業(yè)市場發(fā)展分析及前景趨勢與投資研究報告
- 復(fù)雜特征點云的高精度快速配準(zhǔn)技術(shù)
- 2024年1月國家開放大學(xué)漢語言文學(xué)本科《古代詩歌散文專題》期末紙質(zhì)考試試題及答案
- DBJ50T-098-2019 城市綠化養(yǎng)護質(zhì)量標(biāo)準(zhǔn)
- 消防接警調(diào)度(一級)理論考試題庫(含答案)
- 教材教法基礎(chǔ)培訓(xùn)
- DB3301T 0410-2023 城市河道生態(tài)清淤管理規(guī)范
評論
0/150
提交評論