WPF ListBox ItemTemplate中按钮点击事件触发后无法选中ListItem的解决方法
示例
<ListBox x:Name="ListBox" Margin="20" ItemsSource="{Binding DataList}" SelectedIndex="{Binding SelectedIndex}" >
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsSelected" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Expander >
<Grid >
<DockPanel >
<Button DockPanel.Dock="Right" Content="测试" cal:Message.Attach="[Event Click]=[Action Details()]"></Button>
<TextBlock/>
</DockPanel>
</Grid>
</Expander>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
核心解决方案
很简单,给LiteItem添加鼠标事件即可
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsSelected" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>