2009-05-08 7 views

Respuesta

5

Bueno, para añadir un MenuItem que necesita algo en este sentido:

var menuItem = new MenuItem() { Header = "Menu Name", Name = "Identifier", IsCheckable = true, IsChecked = visible }; 
menuItem.Click += new RoutedEventHandler(contextMenu_onClick); 
int position = contextMenu.Items.Add(menuItem); 

(pero de lo que has conseguido ya esto).

Necesitarás alguna forma de vincular la opción de menú a la propiedad, pero sin ver tu aplicación realmente no puedo sugerir la mejor manera. Está la propiedad Tag que almacena un objeto; la propiedad Uid que almacena una cadena; la propiedad Name que también almacena una cadena.

bien:

menuItem.Visibility = Visibility.Visible; 

y

menuItem.Visibility = Visibility.Collapsed; 

debe cambiar la visibilidad del elemento.

EDIT: El uso de Colapsado ocultará la opción de menú y no reservará espacio en el menú; no desea realmente espacios en blanco en un menú contextual. (gracias a Botz3000 por esto)

Luego en su código donde se cambia el valor de la propiedad encontrará el elemento del menú que desea mostrar/ocultar utilizando el enlace que describí anteriormente. Una vez que tenga el elemento que puede cambiar su valor:

menuItem.Visibility = menuItem.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible; 
+1

¿No sería mejor Visibility.Collapsed? – Botz3000

+1

Gracias - He actualizado la respuesta – ChrisF

0

¿Seguro que desea ocultar la MenuItem? Es más común para desactivarlo, utilizando el framework mando de WPF:

<MenuItem Header="_MenuName" Command="{x:Static local:MyCommands.SomeCommand}" /> 

... 

<!-- In the menu item or any of its ancestors: --> 
<SomeControl.CommandBindings> 
    <CommandBinding Command="{x:Static local:MyCommands.SomeCommand}" Executed="Save_Executed" CanExecute="Save_CanExecture" /> 
</SomeControl.CommandBindings> 

WPF utilizará el resultado de boolSave_CanExecute para determinar si el comando MenuItem 's puede ejecutar actualmente, y activar/desactivar el MenuItem en consecuencia.

Cuestiones relacionadas