如何使用触发器定位不同的控件?
问题描述:
如何点击按钮,然后将Value
的txtNoOfVehicles
设置为NULL
或""
?我研究了样式/数据/事件触发器,但是我看到的所有示例都针对应用触发器的同一个控件。我想点击按钮上的触发器,目标是TextEdit
的Text
属性。如何使用触发器定位不同的控件?
我想:
<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>
答
要回答你的问题,你可以做这样的事情
<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>
如果你绑定到视图模型,你为什么不只是在这一点上清除文本?在命令上敲击按钮,然后清除支持该行的属性的文本。 – TYY 2015-03-31 11:23:26
@TTY我从来没有想过这个,好主意,但我仍然认为触发器会更简单,只要它可以看到文本框... – sprocket12 2015-03-31 11:27:46
我认为使用命令作为TTY说是实现您的要求的最佳方式。 – Karuppasamy 2015-03-31 11:59:50