Tengo el siguiente GridView
:WPF: Presentación de un menú contextual para los elementos de un GridView
<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}" />
<GridViewColumn Header="Album" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Album.Name}"/>
<GridViewColumn Header="Length" Width="100" HeaderTemplate="{StaticResource BlueHeader}"/>
</GridView>
</ListView.View>
</ListView>
Ahora me gustaría mostrar un menú contextual de un clic derecho sobre un elemento acotado que me permitirá recuperar la elemento seleccionado cuando manejo el evento en el código detrás.
¿De qué manera puedo lograr esto?
[Actualización]
siguiente código Dennis Roche 's, ahora tengo esto:
<ListView Name="TrackListView" ItemContainerStyle="{StaticResource itemstyle}">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="OnListViewItem_PreviewMouseLeftButtonDown" />
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Add to Playlist"></MenuItem>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
<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}" />
<GridViewColumn Header="Album" Width="100" HeaderTemplate="{StaticResource BlueHeader}" DisplayMemberBinding="{Binding Album.Name}"/>
<GridViewColumn Header="Length" Width="100" HeaderTemplate="{StaticResource BlueHeader}"/>
</GridView>
</ListView.View>
</ListView>
Pero al correr, estoy recibiendo esta excepción:
No se puede agregar contenido del tipo 'System.Windows.Control s.ContextMenu ' a un objeto del tipo' System.Object '. Error en el objeto 'System.Windows.Controls.ContextMenu' en el archivo de marcado 'MusicRepo_Importer; component/controls/trackgridcontrol.xaml'.
¿Cuál es el problema?
primer error que puedo ver es que se está ajustando el ItemContainerStyle dos veces: primero en un recurso y luego otra vez a nivel local. Además, el menú contextual debe ser un recurso. Parece ser un error con WPF. Actualizaré mi publicación original con una solución. – Dennis