>我有以下 XAML 代码段:
<TextBox x:Name="FilterTB" TextChanged="FilterTB_TextChanged"/>
<Button x:Name="CancelFilterSelectionButton" FontWeight="Bold" Content="X"/>
我想在用户按下按钮时擦除文本框的内容。
当然,从代码隐藏执行此操作是一项微不足道的任务,但我希望仅通过使用 XAML 来完成它,因此使用触发器。
我尝试在网上进行研究,但我要么找到了不正确的解决方案,要么找到了过于复杂的解决方案,所以我想听到一些干净紧凑的解决方案。
在这里我有一分钟的空闲时间,希望这有帮助,干杯。
命名空间;
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>
哦,还有附言 - 你真的只需要TargetName
或TargetObject
,但我为了示例而包括了两者。