2012-07-10 76 views
0

我对MVVM和WPF很新。如何使用MVVM关闭没有任何MVVM框架的WPF子窗口?

我创建的应用程序有两个按钮,openWindow和closeWindow。 我设法用ICommand连接openWindow,并打开一个新窗口:) 我的问题是,当我按下那个closeWindow时,是否关闭了打开的窗口?

我没有使用像MVVM光等

非常感谢任何MVVM框架。

+1

使用代码隐藏。 UI工作由UI层完成,而不是ViewModel完成。 – Will 2012-07-10 13:00:55

回答

0

为什么你想从另一个窗口关闭一个窗口?对我来说没有意义,它不适合用户友好。尽管如此,你总是可以在你的视图模型中公开一个视图可以订阅和反应的事件。您不会因此类事件而破坏mvvm模式。

+0

嘿Blindmeis。看看我正在试图围绕MVVM的工作方式 - >从Windows窗体背景来看,通常,我会传递该子窗口的一个实例,然后通过引用该实例可以轻松关闭它。这里用mvvm,我甚至不知道它是否有可能传递窗口的一个实例。 – h4ck3r8ug5 2012-07-10 10:47:56

+0

您只需要稍微反转思维 - 而不是父母持有对孩子的引用,孩子应该知道父母并回应它的事件。将主窗口VM对象作为参数传递给子窗口,然后子进程可以从父进程订阅任何需要的事件(包括关闭事件)。 – 2012-07-10 11:37:38

+0

如果你想做mvvm,你应该完全忘记视图/窗口;)在viewmodels中思考以及它们是如何相关的。视图和用户控件只是视觉表现。只是编辑你的问题,我写你想实现的。例如,我希望我的主视图可以打开一个对话框,让用户可以编辑数据,然后用OK /取消这些数据返回到主视图。这很容易用mvvm来实现。 – blindmeis 2012-07-10 14:04:50