首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF ListView:附加双击(在项目上)事件

WPF ListView:附加双击(在项目上)事件
EN

Stack Overflow用户
提问于 2009-04-08 01:40:55
回答 4查看 100.4K关注 0票数 85

我有以下ListView

代码语言:javascript
运行
复制
<ListView Name="TrackListView">
    <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>

如何将事件附加到将在双击绑定项时触发的每个绑定项?

EN

回答 4

Stack Overflow用户

发布于 2015-02-18 05:05:00

我的解决方案是基于@epox_sub's answer的,您应该了解如何将事件处理程序放在XAML中的什么位置。代码隐藏对我不起作用,因为我的ListViewItems是复杂对象。@sipwiz's answer是一个很好的提示,告诉你应该去哪里找…

代码语言:javascript
运行
复制
void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    var item = ListView.SelectedItem as Track;
    if (item != null)
    {
      MessageBox.Show(item + " Double Click handled!");
    }
}

这样做的好处是你得到了SelectedItem的DataContext绑定(本例中是Track)。Selected Item起作用是因为第一次双击选中了它。

票数 10
EN

Stack Overflow用户

发布于 2020-02-16 21:33:33

我使用的替代方法是Event To Command,

代码语言:javascript
运行
复制
<ListView ItemsSource="{Binding SelectedTrack}" SelectedItem="{Binding SelectedTrack}" >
    <i:Interaction.Triggers>
         <i:EventTrigger EventName="MouseDoubleClick">
              <i:InvokeCommandAction Command="{Binding SelectTrackCommand}"/>
         </i:EventTrigger>
    </i:Interaction.Triggers>
    ...........
    ...........
</ListView>
票数 6
EN

Stack Overflow用户

发布于 2009-04-08 02:03:14

在您的示例中,您是否正在尝试捕获ListView中的项目被选中或列标题被单击的时间?如果是前者,则需要添加一个SelectionChanged处理程序。

代码语言:javascript
运行
复制
<ListView Name="TrackListView" SelectionChanged="MySelectionChanged">

如果是后者,则必须在GridViewColumn项上使用MouseLeftButtonUp或MouseLeftButtonDown事件的某种组合来检测双击并采取适当的操作。或者,您可以处理GridView上的事件,并从中找出鼠标下面的列标题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/728205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档