2010-10-06 15 views
14

Ho un normale Button e TextBox in una finestra WPF e voglio un modello per il pulsante con un EventTrigger che ascolta Button.Click e quindi imposta una proprietà boolean del TextBox. Nessun code-behind.EventTrigger con Setter in WPF?

Qualcosa di simile a questo:

<ControlTemplate.Triggers> 
    <EventTrigger SourceName="MyButton" RoutedEvent="Button.Click"> 
    <Setter TargetName="MyTextBox" Property="Focusable" Value="False" /> 
    </EventTrigger> 

risposta

14

Ecco un esempio che imposta e cancella Focusable su un TextBox da un EventTrigger.
Speriamo che tu possa adattare questo esempio alla tua situazione.

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <TextBox 
     x:Name="tb" 
     Grid.Row="0" 
     Text="Here is some sample text"> 
    </TextBox> 
    <Button 
     x:Name="btnFocusTrue" 
     Grid.Row="1" 
     Content="Set True"> 
    </Button> 
    <Button 
     x:Name="btnFocusFalse" 
     Grid.Row="2" 
     Content="Set False"> 
    </Button> 
    <Grid.Triggers> 
     <EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusTrue"> 
      <BeginStoryboard Name="FocusTrueStoryboard"> 
       <Storyboard > 
        <BooleanAnimationUsingKeyFrames 
         Storyboard.TargetName="tb" 
         Storyboard.TargetProperty="(TextBox.Focusable)"> 
         <DiscreteBooleanKeyFrame 
          KeyTime="00:00:01" 
          Value="True" /> 
        </BooleanAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
     <EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusFalse"> 
      <BeginStoryboard Name="FoucsFalseStoryboard"> 
       <Storyboard > 
        <BooleanAnimationUsingKeyFrames 
         Storyboard.TargetName="tb" 
         Storyboard.TargetProperty="(TextBox.Focusable)"> 
         <DiscreteBooleanKeyFrame 
          KeyTime="00:00:01" 
          Value="False" /> 
        </BooleanAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Grid.Triggers> 
</Grid> 
+2

Ahhh perso le Discrete * fotogramma chiave-classi ... la sua una soluzione al mio problema, ma è un sacco di XAML per un compito così semplice ... Vorrei che ci cui una versione più breve –

+0

Come possiamo impostare la valore di proprietà di dipendenza personalizzato nel trigger evento ?? – Ujjwal27

Problemi correlati