我正在阅读Shawn Wildermuth关于使用MVVM光构建Silverlight应用程序的文章: - http://wildermuth.com/2010/01/02/Architecting_SL4_Apps_with_RIA_Services_MEF_and_MVVM_-_Part_4_%28of_3%29
我只是想知道它们之间有什么区别: -
<Button
Content="Previous Page" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction CommandName="PreviousPage"/>
<ei:CallMethodAction TargetObject="{Binding ElementName=grid}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
并且
<Button Command="{Binding PreviousPage}"
Grid.Row="0"
Content="Previous Page" />
您何时会专门使用触发器?
提前致谢:)
答案 0 :(得分:5)
在命令绑定上使用触发器的主要原因是您希望触发器触发Click
以外的事件。如果你需要一个命令来触发鼠标而不是点击按钮,你需要使用带有EventName
设置的触发器来处理鼠标悬停。
在控件本身上实现的命令非常有限。它们很好地涵盖了基本情况,但它们不是很灵活。触发器为您提供了更多的灵活性。