欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于WPF自定義分頁控件的示例代碼

 更新時間:2025年07月09日 08:26:03   作者:孤獨成派  
在桌面應用程序開發(fā)中,特別是使用WPF框架時,數(shù)據(jù)展示和用戶交互的優(yōu)化至關重要,本文將介紹兩種不同的分頁控件的實現(xiàn)方式,有需要的可以了解下

前言

在桌面應用程序開發(fā)中,特別是使用WPF框架時,數(shù)據(jù)展示和用戶交互的優(yōu)化至關重要。當處理大量數(shù)據(jù)時,如何有效地進行分頁顯示成為了一個關鍵問題。

本文將介紹兩種不同的分頁控件——通用分頁控件 Pager 和自動分頁控件 ListPager 的實現(xiàn)方式,并提供相應的XAML和C#代碼示例。

分頁效果

通用分頁控件 Pager

XAML 示例

<DockPanel Margin="10">
    <pp:Pager x:Name="pager" DockPanel.Dock="Top" Margin="0 10">
        <ComboBox x:Name="combo" Padding="6 0" SelectedIndex="0" BorderBrush="#D9D9D9" Foreground="#333" pp:BorderElement.CornerRadius="4" Margin="6 0"
        DisplayMemberPath="Value" SelectedValuePath="Key" SelectedValue="{Binding PageSize,ElementName=pager}" />
    </pp:Pager>
    <ListBox x:Name="list" />
</DockPanel>

該XAML定義了頁面頂部的一個 Pager 控件,其中包含一個下拉框用于選擇每頁顯示的條目數(shù)。下方是一個 ListBox 用于展示分頁后的數(shù)據(jù)。

后臺代碼

public PagerView()
{
    InitializeComponent();

    var dic = new Dictionary<Int32, String>
    {
        [10] = "10條/頁",
        [20] = "20條/頁",
        [30] = "30條/頁",
        [40] = "40條/頁",
    };

    combo.ItemsSource = dic;
    combo.SelectedValue = 10;

    pager.PageIndexChanged += OnPageIndexChanged;
    pager.TotalCount = datas.Count();
}

private void OnPageIndexChanged(Object sender, EventArgs e)
{
    list.ItemsSource = datas.Skip((pager.PageIndex - 1) * pager.PageSize).Take(pager.PageSize);
}

private IEnumerable<Int32> datas = Enumerable.Range(1, 999);

這段段代碼實現(xiàn)了分頁邏輯,監(jiān)聽 PageIndexChanged 事件來刷新列表數(shù)據(jù)。

樣式模板

<Style TargetType="{x:Type ctrls:Pager}">
    <!-- 省略樣式細節(jié) -->
</Style>

通過自定義樣式模板可以調整 Pager 控件的外觀,如頁碼按鈕、跳轉輸入框等。

自動分頁控件 ListPager

XAML 示例

<DockPanel Margin="10">
    <pp:ListPager x:Name="pager" DockPanel.Dock="Top" Margin="0 10">
        <ComboBox x:Name="combo" Padding="6 0" SelectedIndex="0" BorderBrush="#D9D9D9" Foreground="#333" pp:BorderElement.CornerRadius="4" Margin="6 0"
                  DisplayMemberPath="Value" SelectedValuePath="Key" SelectedValue="{Binding PageSize,ElementName=pager}" />
    </pp:ListPager>
    <ListBox x:Name="list" ItemsSource="{Binding DisplaySource,ElementName=pager}" />
</DockPanel>

ListPager 控件簡化了分頁流程,只需設置數(shù)據(jù)源即可自動完成分頁。

后臺代碼

public ListPagerView()
{
    InitializeComponent();

    var dic = new Dictionary<Int32, String>
    {
        [10] = "10條/頁",
        [20] = "20條/頁",
        [30] = "30條/頁",
        [40] = "40條/頁",
    };

    combo.ItemsSource = dic;
    combo.SelectedValue = 10;

    pager.Source = Enumerable.Range(1, 999);
}

相比 Pager,ListPager 更加便捷,它直接接收全部數(shù)據(jù)并根據(jù)頁面大小自動處理分頁邏輯。

項目源碼

GitHub:github.com/LowPlayer/PP.Wpf

總結

不管是 Pager 還是 ListPager,它們都提供了靈活且強大的分頁解決方案,適用于不同的場景需求。Pager 提供了更多的手動控制選項,適合需要定制化分頁邏輯的應用;而 ListPager 則簡化了開發(fā)者的負擔,特別適合那些能夠一次性獲取所有數(shù)據(jù)的情況。

這些控件不僅提升了用戶體驗,也提高了數(shù)據(jù)展示的效率。對于開發(fā)來說,理解并合理選用這兩種分頁控件,可以極大地提升應用的性能和易用性。

到此這篇關于基于WPF自定義分頁控件的示例代碼的文章就介紹到這了,更多相關WPF分頁內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#制作網站掛機程序的實現(xiàn)示例

    C#制作網站掛機程序的實現(xiàn)示例

    本文主要介紹了C#制作網站掛機程序,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C# 當前系統(tǒng)時間獲取及時間格式詳解

    C# 當前系統(tǒng)時間獲取及時間格式詳解

    這篇文章主要介紹了C# 當前系統(tǒng)時間獲取及時間格式詳解的相關資料,這里提供代碼實例,幫助大家學習參考,需要的朋友可以參考下
    2016-12-12
  • 在C#中讀取CPU、硬盤和內存溫度的完整代碼

    在C#中讀取CPU、硬盤和內存溫度的完整代碼

    系統(tǒng)監(jiān)控工具或性能分析應用時,實時獲取硬件信息(如 CPU、硬盤和內存的溫度)是一個常見且重要的需求,本文將詳細介紹如何在 C# 項目中集成并使用 Open Hardware Monitor 庫,以實現(xiàn)對 CPU、硬盤以及內存溫度的監(jiān)控,需要的朋友可以參考下
    2025-06-06
  • C#格式化數(shù)字字符串的方法

    C#格式化數(shù)字字符串的方法

    這篇文章主要為大家詳細介紹了C#格式化數(shù)字字符串的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C#中overrid和new修飾符有什么不同

    C#中overrid和new修飾符有什么不同

    在C#的繼承中嘗嘗會用到相關的修飾詞:override和new。這兩個修飾符都可以在新的子類中,重寫同名的父類方法。下面通過本文給大家介紹C#中overrid和new修飾符的區(qū)別,感興趣的朋友一起看看吧
    2018-02-02
  • Unity 實現(xiàn)框選游戲戰(zhàn)斗單位的思路詳解

    Unity 實現(xiàn)框選游戲戰(zhàn)斗單位的思路詳解

    這篇文章主要介紹了Unity 如何實現(xiàn)框選游戲戰(zhàn)斗單位,本文簡單介紹如何實現(xiàn)即時戰(zhàn)略游戲中框選戰(zhàn)斗單位的功能,需要的朋友可以參考下
    2022-12-12
  • C# Volatile的具體使用

    C# Volatile的具體使用

    本文主要介紹了C# Volatile的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C#動態(tài)代碼生成控件后其他事件不能獲取該控件值的解決方法

    C#動態(tài)代碼生成控件后其他事件不能獲取該控件值的解決方法

    這篇文章主要給大家介紹了關于C#動態(tài)代碼生成控件后其他事件不能獲取該控件值的解決方法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • C#難點逐個擊破(1):ref參數(shù)傳遞

    C#難點逐個擊破(1):ref參數(shù)傳遞

    一般情況,方法的參數(shù)傳遞是通過值進行傳遞的,另一種情況是引用傳遞,大家可以參考下。
    2010-02-02
  • C#中Random.Next方法的使用小結

    C#中Random.Next方法的使用小結

    在C#中,Random.Next()方法用于生成一個隨機整數(shù),本文主要介紹了C#中Random.Next方法的使用小結,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01

最新評論