2009-11-11 4 views
0

Я хочу включить диалоговое окно «Применить», когда содержимое некоторых текстовых полей в этом диалоговом окне изменится.Диалог триггера Состояние кнопки «Применить»

Вот что я придумал:

<Window.Resources> 
    <ResourceDictionary> 
     ... 
     <Style x:Key="SettingTextBoxStyle" TargetType="{x:Type TextBox}"> 
      <Style.Triggers> 
       <EventTrigger RoutedEvent="TextBox.TextChanged" > 

        <!-- I need something like this --> 
        <Setter Property="ApplyButton.IsEnabled" Value="True" /> 

       </EventTrigger> 
      </Style.Triggers> 
     </Style> 
    </ResourceDictionary> 
</Window.Resources> 

<!-- in a galaxy far far away --> 
<StackPanel> 
     ... 
     <TextBox Style="{StaticResource SettingTextBoxStyle}" Text="{Binding Source={x:Static settings:Settings.Default}, Path=OutputFile}" /> 
</StackPanel> 

<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right"> 
    <Button Content="OK" Width="100" Click="OK_Click"/> 
    <Button Content="Cancel" Width="100" Click="Cancel_Click" /> 
    <Button Content="Apply" Name="ApplyButton" Width="100" Click="Apply_Click"/> 
</StackPanel> 

Как достичь ApplyButton.IsEnabled свойства в моем триггере событий?

Должен ли я вместо этого просто использовать тот же самый TextChanged обработчик события в обратном коде?

Или что-то еще?

ответ

0

вы можете попробовать это:

<Grid> 
    <TextBox Name="textBox" Height="28" VerticalAlignment="Top" HorizontalAlignment="Left" Width="95" > 
     <TextBox.Triggers> 
      <EventTrigger RoutedEvent="TextBox.TextChanged"> 
       <BeginStoryboard> 
        <Storyboard> 
         <BooleanAnimationUsingKeyFrames Storyboard.TargetName="button1" Storyboard.TargetProperty="(Button.IsEnabled)"> 
          <DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="True"/> 
         </BooleanAnimationUsingKeyFrames> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </TextBox.Triggers> 
    </TextBox>    
    <Button Height="26" Width="150" IsEnabled="false" Name="button1">Button</Button> 
</Grid> 
+0

«Имя_целевого_объекта свойство не может быть установлен на стиль сеттер». И мне нужен стиль с некоторыми текстовыми полями в этом диалоговом окне .. а .. не связаны с настройками. Спасибо, в любом случае. – jonny

+0

Да, я проверил это, вот почему я добавлял EventTrigger в триггеры TextBox вместо того, чтобы использовать его в стиле. В вашем случае вы также можете использовать команды. – viky

+0

прошу вас, каким образом? – jonny

Смежные вопросы