WPF对ListView的ListViewItem添加双击事件
程序员文章站
2022-03-07 17:03:43
...
最近做了一个wpf的应用程序,其中主页面是使用平铺的卡片方式展示的,双击卡片的时候,可以打开卡片相关的详细。
问题出现了,在双击卡片的时候会崩溃,因为没有选中任何卡片的时候,双击事件把整个DataView作为参数传递。
找到一个解决方案,就是只对卡片设置双击事件,由于卡片是 Template 需要用到EventSetter,代码如下:
<UserControl.Resources>
<Style x:Key="itemstyle" TargetType="{x:Type ListViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="HandleDoubleClick" />
</Style>
</UserControl.Resources>
<ListView Name="TrackListView" ItemContainerStyle="{StaticResource itemstyle}">
<ListView.View>
<GridView>
<GridViewColumn Header="Title" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Artist" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Album.Artist.Name}" />
</GridView>
</ListView.View>
</ListView>
protected void HandleDoubleClick(object sender, MouseButtonEventArgs e)
{
this.RaiseEvent(new RoutedEventArgs(ItemDoubleClickEvent, itemList.SelectedItem));
}
转载于:https://my.oschina.net/huxuanhui/blog/37685
上一篇: WPF ListView绑定小例子