最近在使用WPF MVVM模式进行开发的时候遇到了个头大的问题,就是如何通过VM去驱动V里面的试图控件,例如最简单的通过VM里面去控制前端页面里面的文本框焦点问题,平常简单的一句话现在就感觉变得异常复杂,由于也是半路接手别人的项目,里面各种封装控件组件,遇到棘手的问题就头大。好在通过网络查找到了最终的解决方案。现做个记录,方便后期查漏补缺。
Messenger类通过发布订阅的方式解决这种方式比较易于理解,学过web前端编程的小伙伴应该都习惯用这种方式来进行数据驱动,唯一的缺点就是破坏了xmal.cs 里面无代码的环境,导致代码耦合度又变高了,不易于后期维护。而且代码不通用,无法复用到别的页面里面。
在VM里面发布消息(ViewModel.cs文件)
Messenger.Default.Send<string