Wpf 列表框项目上的按钮

Wpf 列表框项目上的按钮,wpf,listbox,richtextbox,Wpf,Listbox,Richtextbox,我有一个装满物品的列表框。某些项目可能在RichTextBlock内有按钮或链接。我想在按下项目或按下按钮时启动不同的操作。问题是,当我按下按钮时,与项目本身相关的操作也被触发。当按下内部按钮时,如何防止触发列表项事件 列表框: <ListBox x:Name="StripesList" SelectionChanged="StripesList_SelectionChanged"> </ListBox> 我从代码隐藏中注册项目单击事件观察者: item.Tap +=

我有一个装满物品的列表框。某些项目可能在RichTextBlock内有按钮或链接。我想在按下项目或按下按钮时启动不同的操作。问题是,当我按下按钮时,与项目本身相关的操作也被触发。当按下内部按钮时,如何防止触发列表项事件

列表框:

<ListBox x:Name="StripesList" SelectionChanged="StripesList_SelectionChanged">
</ListBox>
我从代码隐藏中注册项目单击事件观察者:

item.Tap += new EventHandler(ItemClick);

在所有事件的处理程序中设置e.Handled=true。它将停止事件的冒泡。

能否在问题中包含列表框的XAML和事件代码?好的,它适用于图像。但是我也希望对RichTextBox中的超链接具有相同的效果,并且它触发的RoutedEventArgs没有处理属性(对于WP7),我不知道,在处理程序的开头,检查源代码,就像在ListBox处理程序中一样,检查e.source是否为Button,然后返回,或者是否为ListBox,然后继续。太好了!它可以工作,我可以使用.OriginalSource属性确定您所说的源。谢谢
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);