问个 MVVM下的数据虚拟化

qq14923349 2017-08-02 11:12:21
这个怎么整?虚拟化分UI和数据两部分 默认UI虚拟化是做好了的,但是数据虚拟化怎么在MVVM里面弄

例如网络每次传的数据很大,但是界面上显示只是一部分其余通过滚动条拉伸
直接绑定每次的网络数据,设计到网络传输和数据量的问题,想采取后台部分更新
MVVM下咋个弄
...全文
270 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq14923349 2017-08-23
  • 打赏
  • 举报
回复
引用 15 楼 duanzi_peng 的回复:
[quote=引用 14 楼 duanzi_peng 的回复:] [quote=引用 8 楼 qq14923349 的回复:] 这个例子源码能发我一下吗
等我上传到资源。[/quote] http://download.csdn.net/download/duanzi_peng/9944491[/quote] 好 谢谢老大
exception92 2017-08-22
  • 打赏
  • 举报
回复
引用 14 楼 duanzi_peng 的回复:
[quote=引用 8 楼 qq14923349 的回复:] 这个例子源码能发我一下吗
等我上传到资源。[/quote] http://download.csdn.net/download/duanzi_peng/9944491
exception92 2017-08-22
  • 打赏
  • 举报
回复
引用 8 楼 qq14923349 的回复:
这个例子源码能发我一下吗
等我上传到资源。
qq14923349 2017-08-22
  • 打赏
  • 举报
回复
引用 12 楼 duanzi_peng 的回复:
[quote=引用 8 楼 qq14923349 的回复:] [quote=引用 6 楼 duanzi_peng 的回复:] 我这没有资料,那个链接中的方式 其实也就是分页,也采用了异步方式加载数据。 用ObservableCollection 集合,操作或删除数据时 不会刷新整个集合,这个不需要担心。你可以自己写一下
上面那例子,他是怎么抓到当前显示的索引和长度?他是没有靠scrollviewer之类的,没看懂。。。[/quote] 自己写了个类似的例子: 逻辑用的就是分页计算,不难。[/quote] 这个例子源码能发我一下吗
exception92 2017-08-18
  • 打赏
  • 举报
回复


引用 8 楼 qq14923349 的回复:
[quote=引用 6 楼 duanzi_peng 的回复:]
我这没有资料,那个链接中的方式 其实也就是分页,也采用了异步方式加载数据。 用ObservableCollection 集合,操作或删除数据时 不会刷新整个集合,这个不需要担心。你可以自己写一下


上面那例子,他是怎么抓到当前显示的索引和长度?他是没有靠scrollviewer之类的,没看懂。。。[/quote]
自己写了个类似的例子:


逻辑用的就是分页计算,不难。
乱臣贼子 2017-08-17
  • 打赏
  • 举报
回复
引用 10 楼 qq14923349 的回复:
[quote=引用 9 楼 lcmsx 的回复:] 提供一个思路:自定义容器, 我们都是自定义容器来做的,自定义的容器实现IScrollInfo接口,就可以实现下拉快到底时,加载下一页的方式进行分页显示就OK了。
ui虚拟化 datagrid已经自带,数据虚拟化需要自己实现[/quote] 那个虚拟化可控性不高,而且你要实现滚动条到某个地方时进行预加载它是没法实现的。。它只是简单的支持了这样的功能。但是不提供任何效果上的控制接口,你没法完成你想要的效果。
乱臣贼子 2017-08-10
  • 打赏
  • 举报
回复
提供一个思路:自定义容器, 我们都是自定义容器来做的,自定义的容器实现IScrollInfo接口,就可以实现下拉快到底时,加载下一页的方式进行分页显示就OK了。
qq14923349 2017-08-10
  • 打赏
  • 举报
回复
引用 9 楼 lcmsx 的回复:
提供一个思路:自定义容器, 我们都是自定义容器来做的,自定义的容器实现IScrollInfo接口,就可以实现下拉快到底时,加载下一页的方式进行分页显示就OK了。
ui虚拟化 datagrid已经自带,数据虚拟化需要自己实现
qq14923349 2017-08-09
  • 打赏
  • 举报
回复
引用 6 楼 duanzi_peng 的回复:
我这没有资料,那个链接中的方式 其实也就是分页,也采用了异步方式加载数据。 用ObservableCollection 集合,操作或删除数据时 不会刷新整个集合,这个不需要担心。你可以自己写一下
上面那例子,他是怎么抓到当前显示的索引和长度?他是没有靠scrollviewer之类的,没看懂。。。
qq14923349 2017-08-07
  • 打赏
  • 举报
回复
引用 6 楼 duanzi_peng 的回复:
我这没有资料,那个链接中的方式 其实也就是分页,也采用了异步方式加载数据。 用ObservableCollection 集合,操作或删除数据时 不会刷新整个集合,这个不需要担心。你可以自己写一下
ok 我看了那个例子也是异步加载和本身自管理,我尝试下
exception92 2017-08-07
  • 打赏
  • 举报
回复
我这没有资料,那个链接中的方式 其实也就是分页,也采用了异步方式加载数据。 用ObservableCollection 集合,操作或删除数据时 不会刷新整个集合,这个不需要担心。你可以自己写一下
qq14923349 2017-08-06
  • 打赏
  • 举报
回复
引用 4 楼 qq14923349 的回复:
[quote=引用 3 楼 duanzi_peng 的回复:] [quote=引用 2 楼 qq14923349 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 其余通过滚动条拉伸 -》要能在VM中捕获 滚动条的垂直偏移量才行,根据偏移量的多少来加载数据。其实这类似分页加载把。
原本是分页模式,后来觉得体验不够好能全选 又改回全部项放一个datagrid里[/quote] 放一个datagrid里 那要清楚滚轮的值是多少的时候 才继续加载,这个不是很容易把握。[/quote] 有没相关资料呢? http://www.wxzzz.com/1326.html 我倒是网上找个这个,我尝试替换成他给你集合形式不知道行不行?我看了下接口继承是IList<T>之类,预估是可以的,还没尝试。 如果datagrid的itemsource直接绑ObservableCollection ,那么集合中某条记录变化或者删除了某项,不会导致整个Datagrid重新刷新吧?我就担心这个。 [/quote] 我底下不采取Clear()方法应该可以规避该问题吧?Mvvm模式绑定ObservableCollection ,某项数据改动后,不会全局刷新整个Datagrid吧?另外就是我上面找到的虚拟化资料不知道直接替换会不会有其他什么问题?或者通过修改源代码使其适应ObservableCollction?
qq14923349 2017-08-06
  • 打赏
  • 举报
回复
引用 3 楼 duanzi_peng 的回复:
[quote=引用 2 楼 qq14923349 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 其余通过滚动条拉伸 -》要能在VM中捕获 滚动条的垂直偏移量才行,根据偏移量的多少来加载数据。其实这类似分页加载把。
原本是分页模式,后来觉得体验不够好能全选 又改回全部项放一个datagrid里[/quote] 放一个datagrid里 那要清楚滚轮的值是多少的时候 才继续加载,这个不是很容易把握。[/quote] 有没相关资料呢? http://www.wxzzz.com/1326.html 我倒是网上找个这个,我尝试替换成他给你集合形式不知道行不行?我看了下接口继承是IList<T>之类,预估是可以的,还没尝试。 如果datagrid的itemsource直接绑ObservableCollection ,那么集合中某条记录变化或者删除了某项,不会导致整个Datagrid重新刷新吧?我就担心这个。
exception92 2017-08-03
  • 打赏
  • 举报
回复
引用 2 楼 qq14923349 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 其余通过滚动条拉伸 -》要能在VM中捕获 滚动条的垂直偏移量才行,根据偏移量的多少来加载数据。其实这类似分页加载把。
原本是分页模式,后来觉得体验不够好能全选 又改回全部项放一个datagrid里[/quote] 放一个datagrid里 那要清楚滚轮的值是多少的时候 才继续加载,这个不是很容易把握。
qq14923349 2017-08-02
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
其余通过滚动条拉伸 -》要能在VM中捕获 滚动条的垂直偏移量才行,根据偏移量的多少来加载数据。其实这类似分页加载把。
原本是分页模式,后来觉得体验不够好能全选 又改回全部项放一个datagrid里
exception92 2017-08-02
  • 打赏
  • 举报
回复
其余通过滚动条拉伸 -》要能在VM中捕获 滚动条的垂直偏移量才行,根据偏移量的多少来加载数据。其实这类似分页加载把。

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧