我在使用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事件,请问应该怎么解决