MVVM模式下,如何在viewmodel中关闭view

youngyey 2011-03-10 04:17:42
现在使用MVVM模式,使用一个childwindow作为view,
通常代码都是在viewmodel中,我想在viewmodel中关闭对应的view,也就是那个childwindow,该怎么写?
...全文
784 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
米高罗朗祺 2013-08-07
  • 打赏
  • 举报
回复
定义一个与窗口关闭方法相符的委托,通过该委托关闭窗口
pc101555 2012-07-18
  • 打赏
  • 举报
回复
在ViewModel中定义一个变量:

private Action _closeAction;

在ViewModel的构造函数中这样定义:
public MainWindowViewModel(Action closeAction)
{
this._closeAction=closeAction;
}

在窗体构造函数中:

this.DataContext=new MainWindowViewModel(this.Close);

要关闭时在ViewModel中执行:

this._closeAction.Invoke();
wildorangeman 2011-03-19
  • 打赏
  • 举报
回复
这个问题比较复杂,我解决了窗体之间传值,并且摸态窗口关闭后返回值给父窗体的问题,但子窗口的关闭目前无法很好的在VM层来控制关闭。
不过你可以考虑依赖注入,业务可以解决!
kael_thas 2011-03-12
  • 打赏
  • 举报
回复
可以定义一个接口写了Close方法, 窗体实现接口,调用接口的Close方法就行了
lcp147572931 2011-03-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 youngyey 的回复:]
现在使用MVVM模式,使用一个childwindow作为view,
通常代码都是在viewmodel中,我想在viewmodel中关闭对应的view,也就是那个childwindow,该怎么写?
[/Quote]
没用过MVVM模式 帮顶
windhuan 2011-03-11
  • 打赏
  • 举报
回复
使用 Behavior
youngyey 2011-03-10
  • 打赏
  • 举报
回复
got it
散分

8,736

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧