WPF 中分页用户控件的好例子

问题描述 投票:0回答:1

我在互联网上搜索寻呼用户控制代码,但找不到满足以下条件的人:

注意:我在一个服务调用中获取了所有行,并将集合存储在父视图模型中(比如说 ObservableCollection objMyList)。

  1. PagingControlVM 中的所有分页逻辑不在 xaml.cs 文件中

  2. 分页控件和父控件之间没有紧密耦合,就像我只是将页面控件放在父页面中并在 PagingControl.xaml.cs 文件中仅创建一个依赖属性(比如说 MyDepProp)。

  3. 当 PagingControl 放入 ParentControl 时,我使用此依赖属性与 ObservableCollection objMyList 绑定 (到目前为止我成功了,但是如何获取 PagingControlVM 中依赖属性的值。我想获取 PagingControlVM 中新集合中 MyDepProp 的值)。

    如果我做错了,请告诉我好的方法。

感谢您的帮助

wpf pagination controls
1个回答
0
投票

首先,这里不需要

PagingControlVM
。 您需要的是拥有一个从
class
(例如
CollectionView
)继承的自己的
PagingCollectionView
,所有分页逻辑都应该在那里。 然后,您必须在父视图模型中创建
PagingCollectionView
的实例作为
objMyList
,该实例可以传递给
UserControl
ItemsSource

更多信息:自己的 CollectionView 用于分页、排序和过滤

根据您的评论进行编辑:

如果您想更改列表,我们会通知您更改,因为我们已经实施了

PagingCollectionView
中的
CollectionView

    private ObservableCollection<string> _objMyList ;

    public ObservableCollection<string> objMyList 
    {
        get { return _list; }
        set { _list = value; }
    }

    private PagingCollectionView _pagingsource;      

    public PagingCollectionView PagingSource
    {
        get
        {
            if(_pagingsource == null)
                _pagingsource = new PagingCollectionView(List, 5);                
            return _pagingsource;
        }
    }

PagingSource
绑定到 UI。 您可以随时更改将通知 UI 的
objMyList

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.