MVVM如何实现UI线程刷新
我用了MVVMlight,有个问题,我在model里声明了一个ObservableCollection<string> Logs,在VM里也做了对应的,界面里也绑定了这个,在界面里有个按钮绑定了一个relaycommand Addlog,这个command直接调用model里的一个方法,会随时间增加而添加字符串到Logs里面去,这个会持续比较长的时间,这时问题来了,每次点击这个按钮后界面都没反应,一直要等到这个方法完成了才会把所有的Logs显示出来。
这个应该是处理线程和UI线程的问题,在没使用MVVM的时候可以用界面元素的Dispatcher来处理,而使用MVVM后,VM是不知道界面元素的,应该怎么做呢,特别是在mvvmlight下?
[解决办法]
后台动态添加试试 数据显示控件也是动态添加
[解决办法]
我是这样做滴
前台ui上有个loading的转转转的控件
绑定vm里面的一个字段IsBusy
如果IsBusy设置成true 那么就visibilite=visible开始遮罩转
false就直接隐藏
很简单啊 都在vm里改数据就好
遮罩可以用这个
http://blog.csdn.net/lhx527099095/article/details/8005095
[解决办法]
可以将一个UI控件传入到VM中,然后使用控件调度至UI线程更新。