gpt4 book ai didi

WPF(MVVM): Closing a view from Viewmodel?

转载 作者:行者123 更新时间:2023-12-03 06:17:28 24 4
gpt4 key购买 nike

有人遇到过使用 MVVM 关闭 View 模型中 View 的巧妙方法吗?

也许有一种方法可以使用绑定(bind)来通知 View (窗口)关闭?

我非常感谢任何人提供的任何意见。

基本上我有一个绑定(bind)到loginViewModel的loginView,在viewmodel中(使用命令上的绑定(bind))我测试登录是否成功,如果是,我基本上加载一个新的 View (主视图)并附加它的数据上下文...

但我仍然显示了登录 View - 所以我需要通知它卸载..

我也希望有一个通用的解决方案,因为我确信在其他情况下我需要做这种事情

有什么想法吗?

最佳答案

编辑:请参阅 my blog post以获得更详细的解释。

当我需要实现这一目标时,我使用我创建的 IRequestCloseViewModel 接口(interface)。

该接口(interface)仅包含一个事件:RequestClose。当 ViewModel(继承自 ViewModelBase 类并实现 IRequestCloseViewModel)想要关闭其关联 View 时,会引发此事件。

在我的应用程序中,所有 Window 都继承自抽象类 ApplicationWindow。每次 DataContext 更改时都会通知此抽象类,并在处理程序中检查 DataContext 是否支持 IRequestCloseViewModel。如果是这种情况,则会设置一个事件处理程序,以便在事件触发时关闭窗口。

或者,就像 Kent 所说,您可以使用屏幕 Controller 在外部类中处理此机制。

关于WPF(MVVM): Closing a view from Viewmodel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1484233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com