Search code examples
wpfxamllistviewwpf-controlslistviewitem

GridView DoubleClick


I have a GridView where I want to detect a doubleclick event on the items in the list, i do it as follows:

<ListView>
    <ListView.View >
        <GridView >
            <GridViewColumn Header="FileName">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <Label Content="{Binding FileName}" MouseDoubleClick="Configuration_MouseDoubleClick"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn DisplayMemberBinding="{Binding CreationDate}" Header="Date"/>
        </GridView>
     </ListView.View>
</ListView>

The problem is that I can only detect doubleclicks by attaching it to the control in the template.

How can I attach the MouseDoubleClick event to the whole ListViewItem? Is there any solution for that with PRISM?


Solution

  • You can add the MouseDoubleClick event to ListViewItem in the ItemContainerStyle like this

    <ListView ...>
        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
                <EventSetter Event="MouseDoubleClick" Handler="ListViewItem_MouseDoubleClick"/>
            </Style>
        </ListView.ItemContainerStyle>
    </ListView>
    

    Code behind..

    void ListViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        //...            
    }