我有一个装满项目的 ListBox。一些项目可能在 RichTextBlock 内部有按钮或链接。我想在按下项目或按下按钮时触发不同的动作。问题是当我按下按钮时,与项目本身相关的动作也会被触发。当按下内部按钮时,如何防止触发列表项事件?
列表框:
<ListBox x:Name="StripesList" SelectionChanged="StripesList_SelectionChanged">
</ListBox>
列表框项目:
<Border x:Name="OuterBorder" Width="400">
<Image x:Name="ThumbnailBox" Width="100" Source="{Binding Thumbnail}" Tap="ThumbnailClick" />
</Border>
代码:
private void StripesList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (StripesList != null)
{
StripesList.SelectedIndex = -1;
}
}
private void ThumbnailClick(object sender, System.Windows.Input.GestureEventArgs e)
{
Image image = sender as Image;
// handle image click
}
private void ItemClick(object sender, EventArgs e)
{
// handle item click
}
我从后面的代码注册项目点击事件观察者:
item.Tap += new EventHandler(ItemClick);