WPF 中分页用户控件的好例子
Good example of Paging User Control in WPF
我在互联网上搜索寻呼用户控制代码,但没有找到满足以下条件的代码:
注意:我在一次服务调用中获取了所有行并将集合存储在父视图模型中(比方说 ObservableCollection objMyList)。
PagingControlVM 中的所有分页逻辑不在 xaml.cs 文件中
分页控件和父控件之间没有紧密耦合绑定,就像我只是将页面控件放在父页面中并在 PagingControl 中只创建一个依赖项 属性(比如说 MyDepProp)。xaml.cs 文件 .
当 PagingControl 放入 ParentControl 时,我使用此依赖项 属性 与 ObservableCollection objMyList 绑定
(到目前为止我成功了,但是如何在 PagingControlVM 中获取依赖项 属性 的值。我想在 PagingControlVM 的新集合中获取 MyDepProp 的值)。
如果我做错了请告诉我好的方法。
感谢您的帮助
首先这里不需要PagingControlVM
。您需要的是拥有一个继承自 CollectionView
(例如 PagingCollectionView
)的自己的 class
,您所有的分页逻辑都应该在那里。然后,您必须在父视图模型中创建一个 PagingCollectionView
作为 objMyList
的实例,该实例可以传递给 UserControl
的 ItemsSource
.
更多信息: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。
希望对您有所帮助。
我在互联网上搜索寻呼用户控制代码,但没有找到满足以下条件的代码:
注意:我在一次服务调用中获取了所有行并将集合存储在父视图模型中(比方说 ObservableCollection objMyList)。
PagingControlVM 中的所有分页逻辑不在 xaml.cs 文件中
分页控件和父控件之间没有紧密耦合绑定,就像我只是将页面控件放在父页面中并在 PagingControl 中只创建一个依赖项 属性(比如说 MyDepProp)。xaml.cs 文件 .
当 PagingControl 放入 ParentControl 时,我使用此依赖项 属性 与 ObservableCollection objMyList 绑定 (到目前为止我成功了,但是如何在 PagingControlVM 中获取依赖项 属性 的值。我想在 PagingControlVM 的新集合中获取 MyDepProp 的值)。
如果我做错了请告诉我好的方法。
感谢您的帮助
首先这里不需要PagingControlVM
。您需要的是拥有一个继承自 CollectionView
(例如 PagingCollectionView
)的自己的 class
,您所有的分页逻辑都应该在那里。然后,您必须在父视图模型中创建一个 PagingCollectionView
作为 objMyList
的实例,该实例可以传递给 UserControl
的 ItemsSource
.
更多信息: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。
希望对您有所帮助。