2010-10-15 3 views

Répondre

29

Vous pouvez utiliser un style et Triggers, en supposant que la commande est responsable de la mise sur le bouton activé/désactivé:

 <Button x:Name="btnMoveUp" 
       Command="{x:Static local:Window1.MoveItemUp}"> 
      <Button.Style> 
       <Style TargetType="{x:Type Button}" > 
        <Style.Triggers> 
         <Trigger Property="IsEnabled" Value="False"> 
          <Setter Property="Visibility" Value="Collapsed" /> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </Button.Style> 
     </Button> 

Notez que vous pouvez définir ce style à périmètre supérieur et de le partager - I mettez-le juste avec le bouton pour un exemple plus compressé.

1

Utilisez le BooleanToVisibilityConverter et liez-le à described here.

+0

c'est une possibilité, merci. cela peut-il être fait sans ajouter une propriété supplémentaire? essayer de réduire la quantité de code. – akonsu

12

Le même comportement sans style et déclencheur, si la propriété Visibility n'est pas encore liée.

Command={Binding MyCommand} 
Visibility="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled, Converter={StaticResource BTVC}}" 

Où BTVC est un BooleanToVisibilityConverter (qui est un must).

Questions connexes