WPF ListView DoubleClick
?<ListView???x:Name="TrackListView"? MouseDoubleClick="MouseDoubleClick"
????????????????? SelectionChanged="SelectionChanged" >
ListView中的MouseDoubleClick雙擊時不觸發(fā)SelectionChanged的選中事件,獲取不到當(dāng)前雙擊的Item,即this.TrackListView.SelectedItem中的數(shù)據(jù)對象為null。
protected void MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
????? var item = this.TrackListView.SelectedItem as Track;//is null
???? //this.TrackListView.SelectedItem is null
}
如果雙擊時剛好觸發(fā)了SelectionChanged事件,那么當(dāng)前l(fā)istView中的selectItem是有數(shù)據(jù)的,那怎么解決不觸發(fā)時而又想獲取到當(dāng)前雙擊Item數(shù)據(jù)對象呢,方法如下:
?
<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)
{
??? var track = ((ListViewItem) sender).Content as Track; //Casting back to the binded Track
}
轉(zhuǎn)載于:https://www.cnblogs.com/ligl/p/5629802.html
總結(jié)
以上是生活随笔為你收集整理的WPF ListView DoubleClick的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装方法
- 下一篇: Asp.Net读写XML简单方法