【问题标题】:Bind window closing event to an ICommand将窗口关闭事件绑定到 ICommand
【发布时间】:2012-03-30 13:59:25
【问题描述】:

我有一个简单的 WPF 应用程序,我没有像 mvvmlight 这样的任何 mvvm 框架。有没有办法将窗口关闭事件绑定到视图模型中的 ICommand?

我尝试了类似的东西

<Window.CommandBindings>
    <CommandBinding Command="Close" Executed="{Binding WindowClose}" />
</Window.CommandBindings>

但显然它不起作用,因为它正在寻找事件处理程序。有没有简单的方法来做到这一点?

【问题讨论】:

    标签: c# wpf mvvm


    【解决方案1】:

    订阅关闭事件并从代码中调用 WindowClose.Execute(null)。 或者使用 EventToCommand(来自一些 MVVM 工具包)。

    【讨论】:

    • 好的,我可以为Closing 事件创建一个简单的事件处理程序,但是如何从该事件处理程序调用 ICommand。我目前无法使用任何 MVVM 工具包。
    • WindowClose 是视图模型中的 ICommand 属性。我认为它不能像在事件处理程序中那样直接访问。我必须从数据上下文中获取视图模型,然后调用 Invoke?
    • 是的,您可以从 DataContext 中获取此命令。如何为 Window 设置 DataContext?
    • 是的。它有效,但我不喜欢类型转换的想法!感谢您的帮助。
    猜你喜欢
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多