2014-11-22 112 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,但我爲這個例子包括了這兩個。