ListBox项上的按钮

时间:2012-07-27 16:36:51

标签: wpf listbox richtextbox

我有一个填充了项目的ListBox。某些项目内部可能包含RichTextBlock中的按钮或链接。我想在按下项目或按下按钮时触发不同的动作。问题是当我按下按钮时,也会触发与项目本身相关的动作。当按下内部按钮时,如何防止触发列表项的事件?

列表框:

<ListBox x:Name="StripesList" SelectionChanged="StripesList_SelectionChanged">
</ListBox>

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);

1 个答案:

答案 0 :(得分:1)

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