2014-11-22 77 views
1

我有以下XAML片段:清除/清除文本框的内容随着按钮的Click事件

<TextBox x:Name="FilterTB" TextChanged="FilterTB_TextChanged"/> 
<Button x:Name="CancelFilterSelectionButton" FontWeight="Bold" Content="X"/> 

我想,当用户按下按钮删除文本框的内容。

当然,从Code Behind这样做是一件小事,但我只想通过使用XAML来实现它,所以使用Triggers。

我尝试过在网上进行研究,但是我发现不正确的解决方案或过于复杂的解决方案,所以我想听听一些干净而紧凑的解决方案。

+0

我认为你需要'命令'而不是触发器。 – Sjips 2014-11-22 19:05:08

回答

3

在这里,我有一个空闲的时刻,希望这有助于,欢呼。

命名空间;

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
xmlns:ei="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions" 

和容易peasy。

<StackPanel Orientation="Horizontal" 
      HorizontalAlignment="Center" 
      VerticalAlignment="Center"> 

    <TextBox x:Name="ThatThangToClear" Width="250"/> 

    <Button x:Name="ClearThatThang" Content="Clear That Thang" Margin="5,0"> 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="Click"> 
       <ei:ChangePropertyAction 
        TargetName="ThatThangToClear" 
        TargetObject="{Binding ElementName=ThatThangToClear}" 
        PropertyName="Text" Value="{x:Null}"/> 
      </i:EventTrigger> 
     </i:Interaction.Triggers>   
    </Button> 

</StackPanel> 

哦,还有P.S. - 你真的只需要TargetNameTargetObject,但我为这个例子包括了这两个。