如何使用触发器定位不同的控件?

如何使用触发器定位不同的控件?

问题描述:

如何点击按钮,然后将ValuetxtNoOfVehicles设置为NULL""?我研究了样式/数据/事件触发器,但是我看到的所有示例都针对应用触发器的同一个控件。我想点击按钮上的触发器,目标是TextEditText属性。如何使用触发器定位不同的控件?

我想:

<Button Content="Infinity" Margin="3"> 
    <Button.Style TargetType="{x:Type Button}"> 
     <Style.Triggers> 
      <Trigger Property="IsPressed" Value="True"> 
       <Setter TargetName="txtNoOfVehicles" Property="dxe:TextEdit.Text" Value="{x:Null}" /> 
      </Trigger> 
     </Style.Triggers> 
    </Button.Style> 
</Button> 
+0

如果你绑定到视图模型,你为什么不只是在这一点上清除文本?在命令上敲击按钮,然后清除支持该行的属性的文本。 – TYY 2015-03-31 11:23:26

+0

@TTY我从来没有想过这个,好主意,但我仍然认为触发器会更简单,只要它可以看到文本框... – sprocket12 2015-03-31 11:27:46

+0

我认为使用命令作为TTY说是实现您的要求的最佳方式。 – Karuppasamy 2015-03-31 11:59:50

要回答你的问题,你可以做这样的事情

<StackPanel> 
    <TextBlock Name="Block" Text="Test" /> 
    <Button Name="btn"> 
     <Button.Triggers> 
      <EventTrigger SourceName="btn" RoutedEvent="Button.Click"> 
        <BeginStoryboard> 
         <Storyboard> 
          <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Block" 
                    Storyboard.TargetProperty="Text" 
                    > 
           <DiscreteObjectKeyFrame Value=""></DiscreteObjectKeyFrame> 
          </ObjectAnimationUsingKeyFrames> 
         </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </Button.Triggers> 
    </Button> 
</StackPanel>