【问题标题】:Catching pressing "Back" button in mvvmlight在 mvvmlight 中捕捉按下“返回”按钮
【发布时间】:2013-05-02 10:33:27
【问题描述】:

我该如何移动

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) 

到视图模型并且仍然能够控制“支持”?在代码隐藏中,我可以使用 e.Cancel = true;,但是如何在 viewmodel 中使用它呢?

【问题讨论】:

    标签: windows-phone-7 mvvm-light


    【解决方案1】:

    你不能绑定不能绑定的东西。您所能做的就是使用Behavior<T> 创建一个假绑定,但这没什么意义。

    相反,您可以简单地在 ViewModel 中转发事件,执行以下操作:

    e.OnCancel = ViewModel.OnBackKeyPress();
    

    然后让OnBackKeyPress() 返回一个bool

    【讨论】:

    • 但是看起来像消息传递正是事情,它旨在防止从视图访问视图模型:) 现在我正在查看消息传递文档......我想,我在某处看到了回调,所以我可以返回带有消息的布尔值。
    • 除了消息是异步的,OnBackKeyPress 是同步的。
    【解决方案2】:

    我得到的第一个想法是将其留在代码隐藏中,并向视图模型发送消息,因此它应该改变其状态。但我还是更喜欢将事件绑定到 VM。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 2012-06-04
      • 1970-01-01
      相关资源
      最近更新 更多