Как сделать так, чтобы событие дочернего элемента ListBox не вызывало родительское событие?

1

проблема

Когда я нажимаю элемент 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.

Теги:
xaml
windows-store-apps
winrt-xaml

1 ответ

1
Лучший ответ

Когда вы получаете событие 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;
}
  • 0
    Прекрасный. Именно то, что я искал. Спасибо друг!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню