【发布时间】:2021-12-13 15:54:24
【问题描述】:
我想重用 ListViewItem 的上下文菜单,方法是在项目本身内添加一个切换按钮来打开它。
上下文菜单本身可以正常工作,
但是,当我通过切换按钮打开它时(只需将其属性 IsOpen 设置为 True),里面的命令就不再起作用了。
似乎上下文菜单不再有DataContext。
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu>
<MenuItem
Header="Restore"
Command="{Binding RestoreCommand}" />
<MenuItem
Header="Delete"
Command="{Binding DeleteCommand}"/>
</ContextMenu>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<!-- My columns here -->
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<ToggleButton IsChecked="{Binding Path=ContextMenu.IsOpen, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
有什么建议吗? 谢谢
【问题讨论】:
标签: wpf xaml datacontext