Ho il seguente GridView
:WPF: Visualizzazione di un menu contestuale articoli di 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>
Ora vorrei per visualizzare un menu contestuale su un clic destro su un elemento limitato che mi permetterà di recuperare il elemento selezionato quando gestisco l'evento nel codice sottostante.
In che modo possibile posso realizzare questo?
[Update]
Seguendo codice Dennis Roche 's, ora ho questo:
<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>
Ma su corsa, sto ricevendo questa eccezione:
Impossibile aggiungere il contenuto di tipo 'System.Windows.Control s.ContextMenu ' a un oggetto di tipo' System.Object '. Errore nell'oggetto 'System.Windows.Controls.ContextMenu' nel file di markup 'MusicRepo_Importer; component/controls/trackgridcontrol.xaml'.
Qual è il problema?
primo errore che posso vedere è che si sta impostando l'ItemContainerStyle due volte: prima a una risorsa e poi di nuovo a livello locale. Inoltre, il menu di scelta rapida deve essere una risorsa. Sembra essere un bug con WPF. Aggiornerò il mio post originale con una soluzione. – Dennis