在模型-视图-视图模型(MVVM)架构模式中,ViewModel 处理数据和逻辑,而 View 专注于表示。 当 ViewModel 操作需要关闭关联表单时,就会出现一个常见的挑战。 既然 ViewModel 不应该直接与 View 交互,那么如何在遵守 MVVM 原则的情况下实现这种闭包?
有几种方法可以解决这个问题:
更复杂且符合 MVVM 的方法采用附加属性。 一个典型的例子是 DialogCloser
方法(如之前接受的解决方案中所示):
<code class="language-xml"><Window ... xc:dialogcloser.dialogresult="{Binding DialogResult}" xmlns:xc="clr-namespace:ExCastle.Wpf"></Window></code>
这会将 ViewModel 的 DialogResult
属性绑定到 DialogCloser
附加属性。 修改 ViewModel 中的 DialogResult
会自动关闭窗口并更新其 DialogResult
属性。 这在 MVVM 框架内优雅地管理表单关闭。
最佳方法取决于应用程序的具体要求。 然而,附加属性技术提供了灵活性、清晰的关注点分离和简单的实现的令人信服的组合。
以上是ViewModel 如何在保持 MVVM 原则的同时关闭表单?的详细内容。更多信息请关注PHP中文网其他相关文章!