在WPF中分页用户控制的好例子

时间:2016-06-27 10:17:32

标签: wpf controls paging

我搜索了互联网寻找用户控制代码,但找不到符合以下条件的人:

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

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

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

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

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

  4. 感谢您的帮助

1 个答案:

答案 0 :(得分:0)

首先,这里不需要{ "Sid": "AllowCloudWatchActions", "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics" ], "Resource": "*" } 。您需要的是拥有一个PagingControlVM继承自class(例如CollectionView),其中所有的分页逻辑都应该存在。然后,您必须在父视图模型中创建PagingCollectionView PagingCollectionView的实例,该实例可以传递给objMyList UserControl

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

根据您的评论进行修改:

如果您想更改列表,我们会在ItemsSource实施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; } } 绑定到UI。您始终可以更改将通知给UI的PagingSource

希望有所帮助。