c# – 如何在WPF中的ViewModel之间进行通信以及如何控制视图生命周期

MainWindow,FirstWindow和SecondWindow有三个窗口. MainWindow可以打开FirstWindow和SecondWindow.

现在我的问题是:

>如何从FirstWindow打开SecondWindow,并在SecondWindow打开时关闭FirstWindow.这时,我可以控制SecondWindow但无法控制MainWindow,就像使用MainWindow中的SecondWindow.ShowDialog()一样.
>单击SecondWindow上的“保存”按钮后,将关闭SecondWindow并更新MainWindow的DataGrid.如何更新来自另一个ViewModel的数据或如何在处理事件时返回数据?

最佳答案 你在这里问多个事情.

基本上你需要2件事.用于在视图模型之间传递消息的事件聚合器(也称为messenger).有不同的框架可以实现它,或者它们是MVVM框架的一部分.

其次,您需要的是导航服务,以便将导航与视图模型分离,因为导航需要了解视图相关技术(WPF,UWP,Silverlight等)

点赞