锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C#开源 / MVVMLight / MVVMLight的ViewModelLocator刷新功能完善、MVVMLight详情页不刷新解决办法
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容。

MVVMLight的ViewModelLocator刷新功能完善、MVVMLight详情页不刷新解决办法


锐英源软件在使用MVVMLight开发了企业信息化软件MIS软件后,解决了些常见问题,比如MVVMLight的ViewModelLocator刷新功能完善和MVVMLight详情页不刷新。

MVVMLight里使用ViewModelLocator类管理ViewModel类,ViewModel里有界面对应的数据对象,ViewModelLocator是通过类实例来管理ViewModel类,比如:

SimpleIoc.Default.Register<AViewModel>();

public AViewModel A => ServiceLocator.Current.GetInstance<AViewModel>();

这些实例使用是在xaml里的:

DataContext="{Binding Source={StaticResource Locator},Path=PeopleSafeStatus}" d:DesignWidth="800"

用Path来指定。

通过实例和Path的Binding,就可以让界面对应的数据对象里的数据显示到xaml的WPF界面里了。

不过如果一个Window重复连续打开,用的ViewModel还是同样的实例,这可以在ViewModel的构造函数里加断点来判断出来,构造函数断点没有触发。这样,ViewModel里的数据对象是不会更新的,还是旧的Model里的数据,这就导致了MVVMLight的ViewModelLocator刷新功能漏洞和MVVMLight详情页不刷新情况。

开始我想着ViewModel不更新,就释放重新创建,用这个办法试着解决问题,但是ViewModelLocator里的Cleanup很奇怪用不了,ViewModelLocator里的实例管理也比较抽象,一时半会也查不出来。

这个问题在一个月前就遇到过,当时也没细想,放了放,这时候就一定要解决了。

后来想了个在xaml.cs里强制刷新的功能,调用Command的Execute方法解决了问题。

MVVMLight的例子和文档比较少,国内的尤其少,可能会有其它更好的方法,欢迎交流。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内