GridView DoubleClick

thumbmunkeys picture thumbmunkeys · Dec 5, 2010 · Viewed 7.7k times · Source

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?

Answer

Fredrik Hedblad picture Fredrik Hedblad · Dec 5, 2010

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)
{
    //...            
}