WPF ListView DoubleClick
?<ListView???x:Name="TrackListView"? MouseDoubleClick="MouseDoubleClick"
????????????????? SelectionChanged="SelectionChanged" >
ListView中的MouseDoubleClick雙擊時不觸發SelectionChanged的選中事件,獲取不到當前雙擊的Item,即this.TrackListView.SelectedItem中的數據對象為null。
protected void MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
????? var item = this.TrackListView.SelectedItem as Track;//is null
???? //this.TrackListView.SelectedItem is null
}
如果雙擊時剛好觸發了SelectionChanged事件,那么當前listView中的selectItem是有數據的,那怎么解決不觸發時而又想獲取到當前雙擊Item數據對象呢,方法如下:
?
<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
}
轉載于:https://www.cnblogs.com/ligl/p/5629802.html
總結
以上是生活随笔為你收集整理的WPF ListView DoubleClick的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装方法
- 下一篇: 嵌入式C语言查表法的项目应用