2017-01-05 1 views
0

j'ai essayé de permettre Item2 lorsque Item1 est cochée et désactiver quand Item1 n'est pas cochée. Comment faire cela avec IValueConverter pour convertir la propriété IsChecked en Boolean et le lier à la propriété IsEnabled dans Item2.WPF Désactiver MenuItem lorsque l'autre MenuItem est vérifiée à l'aide IValueConverter

<ContextMenu x:Name="ItemsContxtMenu"> 
<MenuItem IsCheckable="True" x:Name="Item1" Header="item1 .."/> 
<MenuItem x:Name="Item2" Header="item2 .." IsEnabled="{Binding ElementName=Item1, Path=IsChecked"}/> 
</ContextMenu> 
+0

vous essayez de désactiver MenuItem "Item2", basé sur l'isChecked? mais dans votre xaml vous essayez de contrôler basé sur IsChecked de "Item1"? – WPFUser

+0

@WPFUser Désolé, j'ai modifié la question. –

+0

Vous voulez convertir une propriété bool en bool en utilisant un convertisseur? Pourquoi auriez-vous besoin de ça? –

Répondre

0

Vous n'avez pas besoin convertisseur, écrire XAML suivant:

<Menu VerticalAlignment="Top"> 
    <MenuItem Header="Items"> 
     <MenuItem Name="item1" Header="Item #1" IsCheckable="True" /> 
     <MenuItem Name="item2" Header="Item #2" IsEnabled="{Binding ElementName=item1,Path=IsChecked}" /> 
    </MenuItem> 
</Menu> 
+0

Mais ici vous utilisez Menu. J'utilise ContextMenu –

+0

Utiliser l'événement coché et non coché de item1 pour désactiver ou activer item2. C'est la réponse à votre question. –