Visibility="{Binding Path=Visibility, ElementName=btnUndo}"/>
我正在尝试将menuitems可见性绑定到另一个控件可见性(btnUndo)。
控制可见性受限于触发器
<Style x:Key="undoStyle">
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem.isEdited, ElementName=lvBatches}" Value="True">
<Setter Property="FrameworkElement.Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding SelectedItem.isEdited, ElementName=lvBatches}" Value="False">
<Setter Property="FrameworkElement.Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
我尝试将MenuItem绑定到同一个触发器,但这也不起作用。
有什么建议吗?
答案 0 :(得分:1)
ContextMenus
存在于Adorner Layer中,它与UI层不是同一个Visual Tree。
我知道您可以在MenuItem
中绑定类似以下内容的内容,这将返回附加Control
的{{1}},从那里您可以找到数据你正在寻找。
ContextMenu
例如,您可以创建一个转换器,它从指定的控件遍历{Binding Path=PlacementTarget, RelativeSource=
{RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}}
,直到找到它正在查找的对象,或者您可以绑定到DataContext并在ViewModel中查找特定值。