最近做了一个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>
protected void HandleDoubleClick(object sender, MouseButtonEventArgs e)
{
}
FROM:http://my.oschina.net/huxuanhui/blog/37685