2017-06-10 5 views
0

Je veux activer le bouton jusqu'à ce que tous les champs soient remplis et je l'ai fait mais je ne sais pas comment le faire avec les cases à cocher. J'ai besoin d'au moins un d'entre eux pour être vérifié et il doit être fait à partir de xaml pas de code derrière. Si quelqu'un peut aider, je l'apprécierai.Comment vérifier à partir de xaml si une case est cochée C#

Voici mon code XAML:

<Button.Style> 
      <Style TargetType="{x:Type Button}"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding Text.Length, ElementName=firstname, UpdateSourceTrigger=PropertyChanged}" Value="0"> 
         <Setter Property="IsEnabled" Value="False"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding Text.Length, ElementName=lastname, UpdateSourceTrigger=PropertyChanged}" Value="0"> 
         <Setter Property="IsEnabled" Value="False"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding Text.Length, ElementName=username, UpdateSourceTrigger=PropertyChanged}" Value="0"> 
         <Setter Property="IsEnabled" Value="False"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding Text.Length, ElementName=password, UpdateSourceTrigger=PropertyChanged}" Value="0"> 
         <Setter Property="IsEnabled" Value="False"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding IsChecked, ElementName=scientist}" Value="false"> 
         <Setter Property="IsEnabled" Value="False"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding IsChecked, ElementName=writer}" Value="false"> 
         <Setter Property="IsEnabled" Value="False"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding IsChecked, ElementName=programmer}" Value="false"> 
         <Setter Property="IsEnabled" Value="False"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Button.Style> 

EDIT: Ce bouton permettra que lorsque toutes les cases à cocher sont vérifiées, mais je dois d'être activé lorsqu'au moins l'un d'entre eux est cochée.

+1

Le code que vous montrez est fondamentalement correcte. Si cela ne fonctionne pas comme prévu, il y a quelque chose dans le contexte que vous n'avez pas partagé avec nous causant le problème. Fixez votre question afin qu'elle comprenne un bon [mcve] qui montre clairement ce que vous avez essayé et qui reproduit fidèlement votre problème. –

+0

Au lieu de définir 'IsEnabled = False', définissez' IsEnabled = True' quand 'IsChecked = True' pour toutes les cases à cocher. – AnjumSKhan

Répondre

0

Vous avez besoin d'un MultiDataTrigger ...

  <MultiDataTrigger> 
       <MultiDataTrigger.Conditions> 
        <Condition Binding="{Binding IsChecked, ElementName=scientist}" Value="false"/> 
        <Condition Binding="{Binding IsChecked, ElementName=writer}" Value="false"/> 
        <Condition Binding="{Binding IsChecked, ElementName=programmer}" Value="false"/> 
       </MultiDataTrigger.Conditions> 
       <Setter Property="IsEnabled" Value="False"/> 
      </MultiDataTrigger> 
+0

C'est tout! Je vous remercie. – xena12