0
我在ResourceDictionary
中有ContextMenu
。 ContextMenu
應根據視圖模型屬性的值隱藏或顯示,但不起作用。ResourceDictionary中的綁定不起作用
這是我的XAML代碼(ControlBase
從UserControl
導出):
<control1:ControlBase>
<UserControl.Resources>
<ResourceDictionary>
<HierarchicalDataTemplate ItemsSource="{Binding InfraNetworkItems}">
<StackPanel>
<StackPanel.ContextMenu>
<ContextMenu DataContext="{Binding PlacementTarget.DataContext,
RelativeSource={RelativeSource Self}}">
<MenuItem Header="Delete"
Visibility="{Binding
DataContext.MyViewModel.DeleteEnabled,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=control1:ControlBase},
Converter={StaticResource
BooleanVisibilityConverter}}" />
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</HierarchicalDataTemplate>
</ResourceDictionary>
</UserControl.Resources>
</control1:ControlBase>
DeleteEnabled
是上視圖模型一個bool
屬性。
我解決這個問題的早期嘗試都是基於這個假設:
的ContextMenu
是HierarchicalDataTemplate
它具有ItemsSource
集內。我的房產不是這個ItemSource
的會員,它屬於視圖模型。因此,我已經試過這行代碼,但沒有任何效果:
Visibility="{Binding DataContext.MyViewModel.DeleteEnabled,
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=control1:ControlBase},
Converter={StaticResource BooleanVisibilityConverter}}"
但是,如果我從視圖模型複製DeleteEnabled
屬性設置爲ItemSource
對象,它的工作原理:
Visibility="{Binding DeleteEnabled, Converter={StaticResource BooleanVisibilityConverter}}"