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

Good example of Paging User Control in WPF

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

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

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

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

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

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

感谢您的帮助

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

更多信息:Own CollectionView for paging, sorting and filtering

根据您的评论进行编辑:

如果您想要更改列表,更改将被通知,因为我们已经从 CollectionView 实施了 PagingCollectionView

    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。您可以随时将通知的 objMyList 更改为 UI。

希望对您有所帮助。