Wpf 如何从ViewModel命令生成的线程关闭窗口?

Wpf 如何从ViewModel命令生成的线程关闭窗口?,wpf,mvvm,Wpf,Mvvm,可能重复: 因此,我有一个窗口,用户按下一个按钮。由于我使用的是MVVM,因此会在视图模型中触发命令 此时,我的命令启动一个后台工作程序来做一些有趣的事情。视图愉快地显示了一个进度条。然后在视图模型中触发线程完成事件 所需的行为是当后台线程终止时,窗口应该关闭 因此,就我的一生而言,如果不引用视图模型中的视图(我们都知道这类似于杀死小狗),我就不知道如何获得线程完整的代码来关闭窗口。就您的工作人员进入视图的进度而言(我假设这是通过视图处理的事件完成的)在视图模型中定义WorkerFinishe

可能重复:

因此,我有一个窗口,用户按下一个按钮。由于我使用的是MVVM,因此会在视图模型中触发命令

此时,我的命令启动一个后台工作程序来做一些有趣的事情。视图愉快地显示了一个进度条。然后在视图模型中触发线程完成事件

所需的行为是当后台线程终止时,窗口应该关闭


因此,就我的一生而言,如果不引用视图模型中的视图(我们都知道这类似于杀死小狗),我就不知道如何获得线程完整的代码来关闭窗口。

就您的工作人员进入视图的进度而言(我假设这是通过视图处理的事件完成的)在视图模型中定义WorkerFinished事件并不复杂,视图也会处理该事件

@Will:不客气,不过现在我不得不悬赏了,因为Nir轻率的回答太不令人满意了;)@sixlettervariables:如果你做一个简单的搜索,这个问题已经被问了很多次了,并且得到了很多不同的答案。我知道我以前回答过这个问题。正确答案总是一样的——正统?使用适配器、行为或其他抽象的通信方法通知表单进行徒步旅行。否则,抓起你的参考资料就可以了。无论如何,MVVM并没有十诫的等价物,所以你可以做任何让你感觉更好的事情,包括觊觎你邻居的代码。