Windows phone 7 Mvvm灯光列表框鼠标按钮EFTDown和EventToCommand-如何传递单击的项目

Windows phone 7 Mvvm灯光列表框鼠标按钮EFTDown和EventToCommand-如何传递单击的项目,windows-phone-7,mvvm-light,Windows Phone 7,Mvvm Light,我已经在MVVM Light Windows Phone 7应用程序中绑定了一个列表框,并希望在用户单击我的列表框中的项目时调用我的视图模型中的命令 我正在使用EventToCommand行为进行此操作,一切都很好,只是如果使用MouseLeftButtonDown事件,我无法传递与单击的列表元素关联的数据项 如果我使用SelectionChanged事件,那么我可以将行为的CommandParameter绑定到ListBox的SelectedItem,但我确实想使用MouseLeftButto

我已经在MVVM Light Windows Phone 7应用程序中绑定了一个列表框,并希望在用户单击我的列表框中的项目时调用我的视图模型中的命令

我正在使用EventToCommand行为进行此操作,一切都很好,只是如果使用MouseLeftButtonDown事件,我无法传递与单击的列表元素关联的数据项

如果我使用SelectionChanged事件,那么我可以将行为的CommandParameter绑定到ListBox的SelectedItem,但我确实想使用MouseLeftButtonDown事件

有什么想法吗?我不希望通过设置“PassEventArgsToCommand”选项来污染我的视图模型,而且在任何情况下,我都不确定是否可以从MouseButtoneEventArgs获取所选的数据项

现在,我正准备在代码隐藏中设置一个事件处理程序,并从那里调用ViewModel,使用“sender”获取数据项

谢谢

Damian

看起来这个问题实际上没有意义——在ListBox上触发的MouseLeftButtonDown事件与ListBox中的特定项没有关联


相反,我希望在与ListBox关联的ItemTemplate上连接此事件。

Jesse Liberty在这里给出了一个很好的示例:

但如果您使用的是Windows Phone 7.5,您必须更改一件事,即您不能再使用Galasoft EventToCommand语法,如本例所示:

<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
    <!--<GalaSoft_MvvmLight_Command:EventToCommand x:Name="SelectionCommand" Command="{Binding SwitchProfileCommand, Mode=OneWay}" CommandParameter="{Binding SelectedItem, ElementName=lboxProfiles}"/>-->

    <i:InvokeCommandAction Command="{Binding SwitchProfileCommand, Mode=OneWay}" CommandParameter="{Binding SelectedItem, ElementName=lboxProfiles}" />

</i:EventTrigger>

另外,对于WindowsPhone7.5,请检查是否使用了一个命令,该命令带有链接到每个项目的上下文菜单