我有以下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>
現在我想上一個有界項目右鍵點擊,讓我來檢索顯示上下文菜單當我在後面的代碼中處理事件時選擇的項目。
以什麼樣的方式我可以做到這一點?
[更新]
繼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; component/controls/trackgridcontrol.xaml'。
什麼問題?
我能看到的第一個錯誤是您要設置兩次ItemContainerStyle:首先是資源,然後是本地。 此外,上下文菜單需要是一個資源。這似乎是一個WPF的錯誤。我會用解決方案更新我的原始帖子。 – Dennis 2009-04-16 23:45:24