我正在使用WPF并尝试以MVVM方式编程。
我明白每个视图都有自己的视图模型,这很好用。但我在管理视图之间的交互方面遇到了困难。
比如我有两个视图,View1和View2,每个视图都有自己的ViewModel,ViewModel1和ViewModel2。如果我在View1上有一个下拉框和一个按钮,那么正确的方法是什么呢?怎样才能在按下按钮后关闭第一个视图,通知第二个视图选择的内容,并显示第二个视图呢?这似乎不应该放在模型中,因为它是一个UI问题。ViewModel不应该知道如何打开和关闭WPF窗体(或者应该吗?)而且视图也不应该知道其他ViewModels的任何信息(或者应该吗?)
那么这些问题是如何解决的呢?简单来说:
1)如何在视图之间传递数据?
2)谁来管理视图的生命周期/可见性?
我明白每个视图都有自己的视图模型,这很好用。但我在管理视图之间的交互方面遇到了困难。
比如我有两个视图,View1和View2,每个视图都有自己的ViewModel,ViewModel1和ViewModel2。如果我在View1上有一个下拉框和一个按钮,那么正确的方法是什么呢?怎样才能在按下按钮后关闭第一个视图,通知第二个视图选择的内容,并显示第二个视图呢?这似乎不应该放在模型中,因为它是一个UI问题。ViewModel不应该知道如何打开和关闭WPF窗体(或者应该吗?)而且视图也不应该知道其他ViewModels的任何信息(或者应该吗?)
那么这些问题是如何解决的呢?简单来说:
1)如何在视图之间传递数据?
2)谁来管理视图的生命周期/可见性?