【问题标题】:What actually happens when ApplicationCommands.Close is executed执行 ApplicationCommands.Close 时实际发生的情况
【发布时间】:2011-01-03 06:44:18
【问题描述】:

我想标题中的问题已经足够清楚了。当我打电话时会发生什么

ApplicationCommands.Close.Execute(null,null)

来自我的视图模型类。

我有一个显示用户控件的模型对话框。我有一个命令绑定到在视图模型中执行的用户控件中的按钮。我想在命令执行后关闭对话框。可以使用上面的命令来完成到执行的事件结束。

但我想知道这是否是正确的方法。这会导致任何不良影响吗?

【问题讨论】:

    标签: wpf command


    【解决方案1】:

    很遗憾,这行不通。

    ApplicationCommands.Close 是一个 RoutedUiEvent,它需要一个 Commandtarget(任何 IInputelement)。它使用这个命令目标来引发一个路由事件。

    然后您可以通过使用命令绑定来处理此路由事件。

    您可以从 ViewModel 将 ApplicationCommands.Close 绑定到关闭按钮,然后在您的窗口中处理路由关闭事件。

    但是你不能在 ViewModel 中调用ApplicationCommands.Close.Execute(null,null),因为你没有 CommandTarget(第二个 null)

    还有其他类似How should the ViewModel close the form? 的主题,详细介绍了实现这一目标的各种方法。

    http://adammills.wordpress.com/2011/02/16/mvvm-uses-for-applicationcommands-close/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      相关资源
      最近更新 更多