我的<ListView x:Name="LocalGrid" DataContext="{Binding LocalFiles}" ItemsSource="{Binding Items}" SelectionMode="Single" HorizontalAlignment="Stretch">
<ListView.ContextMenu>
<ContextMenu>
<MenuItem Header="Download" Click="ServerFilesDownloadOnClick"></MenuItem>
</ContextMenu>
</ListView.ContextMenu>
<ListView.View>
<GridView AllowsColumnReorder="True">
<GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Name" Width="Auto" />
<GridViewColumn DisplayMemberBinding="{Binding Length}" Header="Size" Width="100" />
</GridView>
</ListView.View>
</ListView>
设置如下:
position ='identity', stat = 'identity'
然而,当我右键单击列表视图中的某个项目时,我希望弹出上下文菜单,没有任何反应。我看过的所有例子都和我的代码一样简单,但是我错误的是菜单没有出现?
答案 0 :(得分:1)
我认为可能的答案是您正在针对ListView
创建上下文菜单,并且应该针对ListViewItem
创建它。我相信你实际上并没有真正点击ListView本身,而是总是点击这些项目,因此永远不会调用上下文菜单。
建议你需要构建像这样的ListView xaml:
<ListView x:Name="LocalGrid" ...>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem Header="Download" Click="ServerFilesDownloadOnClick" />
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
...
</ListView.View>
</ListView>