一.问题:窗体间传值必须需要窗体之间有联系,具体有如下方式
- 窗体间传值涉及到窗体A必须拥有窗体B,这样才可以实现A-B之间传值
- 窗体A与窗体B在窗体/实例C中,A-B可互相通讯
- 其他方式,不细讨论,复杂不复杂看个人感觉
上述1/2方式即可实现窗体间通讯问题,但是不够简单,有前提条件,在编程过程中有很大麻烦需要处理
比如明明不需要有关联的窗体因为通讯必须关联起来
二.窗体间传值/通讯工具
描述:采用MVVMLight的通讯方式,以静态单例&委托&Key值方式对各窗体/类提供方法达到窗体/类间互相通讯
原理:静态单例Messager对外暴露方法:订阅方法/推送消息方法,
订阅方法中包含Key值、传参类型、订阅窗体/类本身实例,
推送消息方法中包含Key值、传参类型、参数
在Messager单例中对上述消息进行比对,调用,实现通讯功能
源码分析: