有三个窗体,A,B,C,通过A打开B,B打开C,三个窗口有一相同对象,B将对象传给C,C改变了对象的值后,再回传给B,B再将值回传给A,怎么样实现传值?
解决方案
5
用静态类吧,定义一个静态类,里面就是你要传递的值。这样三个窗体都能访问。
10
在3个窗体外面定义公共的静态类,这样3个窗体访问和操作的就都会是同一个字段。例如C设置Product.name = “sss”,那么A和B访问得到的也是Product.name = “sss”。
20
数值(对象)其实不是重点。也许现在你学习基本的设计模式还早了一点,还是简单地“一个窗体中的代码调用另一个窗体对象的public 方法”的阶段。假如你已经不是这个阶段,本人给你说一下设计模式:
通常我们在设计对个(窗体)对象之间的关系时,都会刻意去避免“循环性”。原因是循环依赖是难以扩展的。通常都会选择“主-从”或说是“客户-服务”关系,假设A依赖于B 那么 B 就不依赖于 A,即使是间接地循环依赖也会避免。
假设 A 依赖于 B、B依赖于C,那么 A 就能调用 B 对象的接口方法/属性直接给它的某个属性赋值,B也就能给C的某个接口方法/属性而直接传递值。而当C做出了改变,我们会使用 InotifyPropertyChanged 接口模式来通知 B,同时 B也会用相同的接口模式来通知 A。InotifyPropertyChanged接口,以及 ObservableCollection<T> 泛型等等,都是依赖导致设计原则的体现。
说白了,就是 A 直接访问B,B直接访问C,C用事件通知B,B用事件通知 A。这就是架构师采用的模式。
10
你可以试试使用事件。