C# 防止Caliburn Micro中的导航返回

C# 防止Caliburn Micro中的导航返回,c#,mvvm,windows-phone-8,windows-phone,caliburn.micro,C#,Mvvm,Windows Phone 8,Windows Phone,Caliburn.micro,我有一个Caliburn Micro ViewModel继承自Screen。OnDeactivate应该与视图中的OnNavigateFrom“等效” 我想防止在某些情况下使用“后退”按钮返回。基本上,我想在OnBackKeyPress中设置Cancel=true,但我想在视图模型中这样做 OnDeactivate有一个布尔关闭参数,但当我将其设置为false时,没有任何更改。我认为您可以这样做: <Interactivity:Interaction.Triggers> &l

我有一个Caliburn Micro ViewModel继承自Screen。OnDeactivate应该与视图中的OnNavigateFrom“等效”

我想防止在某些情况下使用“后退”按钮返回。基本上,我想在OnBackKeyPress中设置Cancel=true,但我想在视图模型中这样做


OnDeactivate有一个布尔关闭参数,但当我将其设置为false时,没有任何更改。

我认为您可以这样做:

<Interactivity:Interaction.Triggers>
    <Interactivity:EventTrigger
        EventName="BackKeyPress">
        <Command:EventToCommand
            Command="{Binding BackKeyPressCommand}" />
    </Interactivity:EventTrigger>
</Interactivity:Interaction.Triggers>
但我不知道代码的语法对不起。
对于take canceleventargs,请不要忘记写入
PassEventArgsToCommand=“True”

当您从视图返回时,您将传入OnDeactivate?是,返回时调用ViewModel中的OnDeactivate您只想获取backbuttonpress事件并执行e.cancel=True,就像在overide方法中一样?是,我想做一些相当于在OnNavigateFromy中设置e.Cancel=true的事情您无权访问viewmodel中的canceleventargs?谢谢,这是
micro:Message.Attach=“[Event BackKeyPress]=[Action OnGoBack($eventArgs)]”
cal:Message.Attach="[Event BackKeyPress]