3

遵循 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 元素出现错误。

它改变了吗?

4

3 回答 3

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/

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

  • 从这里下载最新版本

  • 打开并编译 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 添加新的引用。

于 2011-07-13T14:53:04.937 回答
1

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

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}" />
于 2011-05-28T10:47:52.690 回答
0

通过恢复到芒果之前的开发环境,我已经摆脱了这个问题。不是我想要的解决方案,而是 - 向前和向前。

于 2011-05-29T06:18:40.463 回答