如何让ListBox子项事件不调用父事件?

时间:2014-11-09 21:04:55

标签: c# xaml windows-store-apps winrt-xaml

问题

当我点击ListView项目时,它会调用" Tapped"事件导航到另一个页面。我在ItemTemplate中有一个Up Vote事件,当他们调用该特定事件时,我不想调用ListView的tapped事件。知道我该怎么做吗?

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:

活动&#34; UpVoteItem_Tap&#34;不应该触发&#34; listboxFeedbackItem_Tapped&#34;

<DataTemplate x:Key="FeedbackTemplate">
    <StackPanel Orientation="Horizontal">
        <TextBlock Margin="0,0,30,0" Text="{Binding UpVotes}" Tapped="UpVoteItem_Tap"/>
    </StackPanel>
</DataTemplate>

也许在C#中有一种方法可以防止后续事件发生? 谢谢,我仍然试图围绕XAML。

1 个答案:

答案 0 :(得分:1)

当您收到UpVote点击事件时,您可以通过设置e.Handled=true告诉它不要将事件传递给父列表视图:

void UpVoteItem_Tap(object sender, TappedRoutedEventArgs e)
{
    // Processing here
    ...

    // don't send event to parent
    e.Handled = true;
}