首先声明,我是一个小菜鸟,学习WPF也就2个月,如果写的不对的地方,请批评指正。

因为想做一个WPF分页页面,网上找了很多示例程序,大部分都要求使用存储过称,与业务合在一起,控件的通用性不够强。

在我看来,分页控件只需要知道数据有多少页、当前是第几页就可以了,上一页、下一页等命令使用事件或者委托发送出去,实现控件与业务的分离。在这里我采用了MVVM模式来实现分页控件,使用MVVM一定要记住:数据驱动UI界面,尽可能不在后台代码中编写业务逻辑和界面逻辑。示例代码使用了Prism,请引用相关DLL。

首先新建一个自定义控件UserControl

 1 <UserControl x:Class="ZhuanKeWebTool.WPF.Content.UCPager"
 2              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 4              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 5              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
 6              mc:Ignorable="d" 
 7              d:DesignHeight="30" d:DesignWidth="500">
 8     <Grid Background="AliceBlue">
 9         <Grid.ColumnDefinitions>
10             <ColumnDefinition Width="80" />
11             <ColumnDefinition Width="*" />
12             <ColumnDefinition Width="20" />
13             <ColumnDefinition Width="20" />
14             <ColumnDefinition Width="Auto" />
15             <ColumnDefinition Width="20" />
16             <ColumnDefinition Width="20" />
17         </Grid.ColumnDefinitions>
18         <StackPanel Orientation="Horizontal">
19             <TextBlock Text="" HorizontalAlignment="Left" Height="15" Margin="10,0,0,0"/>
20             <TextBlock Text="{Binding RecordCount}" VerticalAlignment="Center"/>
21             <TextBlock Text="" VerticalAlignment="Center"/>
22         </StackPanel>
23 
24         <Button Grid.Column="2" ToolTip="首页" Padding="0" Command="{Binding HomePageCommand}">
25             <Button.Content>
26                 <Image Width="12" Source="../Resources/Images/fastrewind.png"/>
27             </Button.Content>
28         </Button>
29         <Button Grid.Column="3" ToolTip="上一页" Padding="0" Command="{Binding PreviousPageCommand}">
30             <Button.Content>
31                 <Image Width="12" Source="../Resources/Images/skiprewind.png"/>
32             </Button.Content>
33         </Button>
34 
35         <WrapPanel Grid.Column="4" HorizontalAlignment="Center" VerticalAlignment="Center">
36             <TextBlock Text="" VerticalAlignment="Center"/>
37             <ComboBox ItemsSource="{Binding IndexList}" SelectedItem="{Binding PageIndex}" Width="50"/>
38             <TextBlock Text="" VerticalAlignment="Center"/>
39         </WrapPanel>
40 
41         <Button Grid.Column="5" ToolTip="下一页" Padding="0" Command="{Binding NextPageCommand}">
42             <Button.Content>
43                 <Image Width="12" Source="../Resources/Images/skipforward.png"/>
44             </Button.Content>
45         </Button>
46         <Button Grid.Column="6" ToolTip="尾页" Padding="0" Command="{Binding TailPageCommand}">
47             <Button.Content>
48                 <Image Width="12" Source="../Resources/Images/fastforward.png"/>
49             </Button.Content>
50         </Button>
51 
52     </Grid>
53 </UserControl>
View Code

相关文章:

  • 2021-10-26
  • 2018-04-11
  • 2021-05-30
  • 2021-11-07
  • 2021-12-06
  • 2021-11-23
  • 2021-09-18
  • 2022-01-17
猜你喜欢
  • 2019-12-09
  • 2021-07-18
  • 2021-08-19
  • 2021-05-18
  • 2018-09-20
  • 2021-11-07
  • 2021-04-29
  • 2021-04-25
相关资源
相似解决方案