【问题标题】:How to use an event trigger in WP8.1 with MVVM Light?如何在带有 MVVM Light 的 WP8.1 中使用事件触发器?
【发布时间】:2015-12-28 12:05:06
【问题描述】:

在 WPF 应用程序中,要使用带有 MVVM Light 的命令,我使用以下命令:

xmlns:j="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"


<j:Interaction.Triggers>
        <j:EventTrigger EventName="PreviewKeyDown">
            <cmd:EventToCommand Command="{Binding SomeCommand}"> 
            </cmd:EventToCommand>
        </j:EventTrigger>
</j:Interaction.Triggers>

但是在WP8.1中我不能使用iteractivity,所以我不知道如何使用触发器和EventToCommand。

谢谢。

【问题讨论】:

    标签: windows-phone-8.1 mvvm-light


    【解决方案1】:

    这样的?

    xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
    
    <Interactivity:Interaction.Behaviors>
        <Core:EventTriggerBehavior EventName="PreviewKeyDown">
            <Core:InvokeCommandAction Command="{Binding SomeCommand}"/>
        </Core:EventTriggerBehavior>
    </Interactivity:Interaction.Behaviors>
    

    希望这会有所帮助。

    【讨论】:

    • 是的,但是这种方式的问题是在 WPF MVVM Light 中允许传递原始事件参数,但我认为这种方式是不可能的。这样我可以在我的viewModel中获取原始事件参数?
    • @ÁlvaroGarcía 我不确定你用这个做什么,所以很难回答。但是,如果您绑定到任何属性并设置Mode=TwoWay,那么您的视图模型应该相应地更新。如果您的视图不支持绑定属性,您可以创建一个Converter 来在您的视图和视图模型之间转换数据。
    猜你喜欢
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多