ListBox绑定MVVM事件问题

我在使用MVVMLight的时候,给ListBox的ListBoxItem绑定Tap事件 

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WP71"
<ListBoxItem>
      <StackPanel>
            <i:Interaction.Triggers>
                   <i:EventTrigger EventName="Tap">
                            <cmd:EventToCommand Command="{Binding TapCommand}"></cmd:EventToCommand>
                   </i:EventTrigger>
             </i:Interaction.Triggers>
            <TextBlock Text="11"></TextBlock>
            <TextBlock Text="222"></TextBlock>
      </StackPanel>
</ListBoxItem>
public ICommand TapCommand { get; set; }

TapCommand = new RelayCommand(Tapped);

void Tapped()
{
            MessageBox.Show("test");
}

这样是可以监听到Tap事件的

但是我现在要使用模板,后台绑定数据

模板如下

<ListBox ItemsSource="{Binding Path=UserList}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="Tap">
                                <cmd:EventToCommand Command="{Binding TapCommand}"></cmd:EventToCommand>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                        <TextBlock Text="{Binding id}"></TextBlock>
                        <TextBlock Text="{Binding name}"></TextBlock>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

此时Tap页面,监听不到Tap事件,请问应该怎么解决

代码之美
原文地址:https://www.cnblogs.com/betterchaner/p/2521615.html