Je dois créer un menu contextuel pour un élément de menu. La visibilité du menu contextuel est liée au ViewModel. Lorsque la propriété est définie sur true à l'aide de MVVM Light, le menu contextuel apparaît dans l'interface utilisateur même s'il n'y a pas de clic droit sur l'élément de menu. Que puis-je faire pour masquer le menu contextuel lorsque la valeur est false, et le laisser visible uniquement à l'aide du clic droit?ContextMenu de Liaison de visibilité MenuItem
private Boolean _IsEditable;
public Boolean IsEditable
{
get { return _IsEditable; }
set
{
if (_IsEditable == value) return;
_IsEditable = value;
RaisePropertyChanged("IsEditable");
}
}
<Menu DockPanel.Dock="Top">
<MenuItem Header="{Binding Menu.Business}" Visibility="{Binding allowUI, Converter={StaticResource BoolToVisConverter} }">
<MenuItem.ContextMenu>
<ContextMenu Visibility="{Binding Menu.IsEditable, Converter={StaticResource BoolToVisConverter} }">
<MenuItem>
<MenuItem.Header>
<TextBox Text="{Binding Menu.Business, UpdateSourceTrigger=PropertyChanged}" LostFocus="end_change_UI" />
</MenuItem.Header>
</MenuItem>
</ContextMenu>
</MenuItem.ContextMenu>
</MenuItem>
</Menu>
Merci aussi simple que cela! Fonctionne parfaitement –