У меня есть следующие GridView
:WPF: Отображение контекстного меню для единиц продукции в 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>
Теперь я хотел бы, чтобы отобразить на правой кнопкой мыши на ограниченной элемент, который позволит мне извлечь контекстное меню элемент, выбранный, когда я обрабатываю событие в коде позади.
Каким возможным способом я могу это осуществить?
[Update]
После кода Dennis Roche «с, теперь у меня есть это:
<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>
Но после запуска, я получаю это исключение:
Невозможно добавить содержимое типа 'System.Windows.Control s.ContextMenu ' - объекту типа' System.Object '. Ошибка в объекте 'System.Windows.Controls.ContextMenu' в файле разметки 'MusicRepo_Importer; компонент/элементы управления/trackgridcontrol.xaml'.
В чем проблема?
Первая ошибка, которую я вижу в том, что вы устанавливаете ItemContainerStyle дважды: первый к ресурсу, а затем снова на месте. Кроме того, контекстное меню должно быть ресурсом. Кажется, это ошибка с WPF. Я обновляю свое оригинальное сообщение с помощью решения. – Dennis