WP71 MVVMLight EventTrigger无法识别

时间:2011-05-25 20:03:00

标签: windows-phone-7 mvvm-light windows-phone-7.1

遵循Laurent的升级指南http://www.galasoft.ch/mvvm/installing/mangobeta/,从现有的MVVMLight WP7项目到WP71项目。我已经核心地更改了引用和名称空间。但是在XAML中无法识别EventTrigger

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    <i:Interaction.Triggers>

        <i:EventTrigger EventName="Loaded">
            <cmd:EventToCommand 
                Command="{Binding Mode=OneWay, Path=LoadedCommand}"
                 PassEventArgsToCommand="True" />
        </i:EventTrigger>
    </i:Interaction.Triggers>

我在EventTrigger元素上出错。

它改变了吗?

3 个答案:

答案 0 :(得分:2)

当我将应用程序从WP7升级到WP7.1(Mango)时,我遇到了同样的问题。问题是MVVM Light Binaries。您需要升级到WP7.1二进制文件。

Laurent Bugnion(https://stackoverflow.com/users/12233/lbugnion)解释了如何在他的网站上升级MVVM Light二进制文件:http://www.galasoft.ch/mvvm/installing/mangobeta/

这些是我用来解决问题的基本步骤:

  • Download the most recent version from here

  • 打开并编译WP71项目。

  • 将二进制文件复制到MVVM二进制位置(在我的情况下为C:\ Program Files \ Laurent Bugnion(GalaSoft)\ Mvvm Light Toolkit \ Binaries)

  • 打开您的项目

  • 在References文件夹中,删除GalaSoft.MvvmLight,GalaSoft.MvvmLight.Extras和System.Windows.Interactivity。

  • 从文件夹C:\ Program Files \ Laurent Bugnion(GalaSoft)\ Mvvm Light Toolkit \ Binaries \ WP71中添加新引用。

答案 1 :(得分:1)

升级到芒果后,我遇到了类似的问题。在我的情况下,我在MenuItem点击上有EventToCommand绑定,但你似乎在某种加载的事件上有它。您可以尝试在视图的代码隐藏中加载evcent中使用匿名委托。即:

this.Loaded+=(s,e)=>ViewModel.LoadedCommand.Execute(null);

就我而言,我改变了:

<tk:MenuItem Header="Delete Snapshot" >
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <mvvmLight:EventToCommand Command="{Binding DeleteSnapshotCommand, Mode=OneWay}" CommandParameter="{Binding SelectedItem,ElementName=lstSnapshots}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</tk:MenuItem>

<tk:MenuItem Header="Delete Snapshot" Command="{Binding DeleteSnapshotCommand, Mode=OneWay}" CommandParameter="{Binding SelectedItem,ElementName=lstSnapshots}" />

答案 2 :(得分:0)

我已经从这个问题开始,回到芒果前环境。 不是我想要的解决方案,而是 - 前进和前进。