2014-11-22 2 views
1

я следующие XAML фрагмент кода:Clear/Erase TextBox Содержание С Button Click Event

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

Я хотел бы, чтобы стереть содержимое TextBox, когда пользователь нажимает на кнопку.

Конечно, это из-за кода. Это тривиальная задача, но я хотел выполнить ее только с помощью XAML и, таким образом, с помощью триггеров.

Я пробовал исследовать в сети, но я либо нашел неправильные решения, либо чрезмерно запутанные решения, поэтому я хотел бы услышать некоторые чистые и компактные решения.

+0

Я думаю, вам нужно «Command» вместо триггера. – Sjips

ответ

3

Здесь у меня была свободная минута, надеюсь, что это поможет, ура.

namespaces;

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

и легкая пыль.

<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. - Вам действительно нужно только TargetName ИЛИ TargetObject, но я включил оба примера.