单击listboxItem中的userControl时ListBox.SelectionChanged

时间:2012-02-08 12:49:02

标签: wpf user-controls listbox

ListBox内有ListBoxItem和一个UserControl。 当我点击用户控件时ListBox.SelectionChanged没有被触发(我希望它被解雇)我会这样做吗?

Xaml:

<ListBox x:Name="List" HorizontalAlignment="Stretch" 
         VerticalAlignment="Stretch"
         Foreground="Transparent" 
         BorderBrush="Transparent" 
         Background="Transparent" 
         SelectionMode="Multiple" Grid.Row="2"                       
         SelectionChanged="List_SelectionChanged" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <my:Message HorizontalAlignment="Left" .../>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

感谢。

1 个答案:

答案 0 :(得分:0)

如果你在DataTemplate中使用一个处理鼠标点击的控件(例如一个获得键盘焦点的TextBox),这将阻止ListBox接收这些事件。

您可以通过将IsHitTestVisible设置为false来禁用控件中的鼠标事件处理:

<ListBox.ItemTemplate>
    <DataTemplate>
        <my:Message IsHitTestVisible="False" .../>
    </DataTemplate>
</ListBox.ItemTemplate>