проблема
Когда я нажимаю элемент ListView, он вызывает событие "Tapped" для перехода на другую страницу. У меня есть событие Up Vote в ItemTemplate, и когда они вызывают это конкретное событие, я НЕ хочу вызывать событие ListView. Любая идея, как я могу это сделать?
ListView XAML:
Родительское событие, "listboxFeedbackItem_Tapped", происходит в любое время, когда щелкнули любую часть списка
<Grid x:Name="gridMainData" Grid.Row="2">
<ProgressBar x:Name="prgBar" IsIndeterminate="True" VerticalAlignment="Top" Visibility="{Binding Path=FeedbackVM.IsLoading, Mode=TwoWay}"/>
<ListView ItemTemplate="{StaticResource FeedbackTemplate}" ItemsSource="{Binding FeedbackVM.FeedbackCollection}" Tapped="listboxFeedbackItem_Tapped"/>
</Grid>
ItemTemplate Xaml:
Событие "UpVoteItem_Tap" не должно вызывать "listboxFeedbackItem_Tapped"
<DataTemplate x:Key="FeedbackTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="0,0,30,0" Text="{Binding UpVotes}" Tapped="UpVoteItem_Tap"/>
</StackPanel>
</DataTemplate>
Возможно, существует метод на С# для предотвращения последующих событий? Спасибо, я все еще пытаюсь обернуть голову вокруг XAML.
Когда вы получаете событие UpVote tapped, вы можете сказать ему, чтобы он не передавал событие в родительский e.Handled=true
установив e.Handled=true
:
void UpVoteItem_Tap(object sender, TappedRoutedEventArgs e)
{
// Processing here
...
// don't send event to parent
e.Handled = true;
}