我将从代码开始,因为它应该是相当不言自明的:
<commonControls:SearchTextBox
x:Name="searchTextBox"
Margin="6,0"
HorizontalAlignment="Right"
MinWidth="50"
Width="130"
SearchMode="Instant"
>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Search">
<cmd:EventToCommand Command="{Binding Search}"
CommandParameter="{Binding ElementName=searchTextBox, Path=Text}" />
</i:EventTrigger>
<i:EventTrigger EventName="Cancel">
<!-- Code to set searchTextBox.Text to Empty -->
</i:EventTrigger>
</i:Interaction.Triggers>
</commonControls:SearchTextBox>
SearchTextBox
有一个名为Cancel
的事件,如果用户单击TextBox右侧的X按钮,则会执行该事件。我想做的是挂钩该事件,并清除TextBox的Text属性。我正在寻找一种纯粹在XAML中执行此操作的方法,没有代码隐藏,也没有访问ViewModel。
答案 0 :(得分:1)
您可以使用称为“附加行为”的概念来实现此目的,附加属性在附件处理目标对象上的事件并执行某些操作。请参阅以下文章:
http://www.codeproject.com/KB/WPF/AttachedBehaviors.aspx
我发现你已经在使用混合互动了。 Blend为行为提供了一个简单的框架,使它们更容易实现,您可以简单地覆盖OnAttach
方法来添加逻辑。请参见此处的示例: