【发布时间】:2011-09-23 20:32:20
【问题描述】:
它们看起来一样。有显着差异吗?我想我错过了什么。
【问题讨论】:
-
这能回答你的问题吗? What are the different triggers in WPF?
标签: wpf triggers datatrigger
它们看起来一样。有显着差异吗?我想我错过了什么。
【问题讨论】:
标签: wpf triggers datatrigger
简短的回答(因为我要睡觉了)- 触发器适用于 dependency properties(通常是 GUI 属性),而数据触发器可以由任何 .NET 属性触发(通常是 ViewModel 中实现 @987654322 的属性@)。
【讨论】:
普通的Trigger 只响应依赖属性。
DataTrigger 可以由任何 .NET 属性触发(通过设置其Binding 属性)。但是,它的设置器仍然可以仅针对依赖项属性。
【讨论】:
Trigger 使用起来更方便。
另一个区别是DataTrigger 可以绑定到另一个控件、StaticResource 等。
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger
Binding="{Binding SomeProperty,
ElementName=someOtherControl"
Value="Derp">
<!-- etc -->
当使用Trigger 时,您只能检查设置样式的实例。例如,应用于 Button 的 Trigger 可以检查 IsPressed 的值,但如果您愿意,它将无法检查(例如)TextBox 在同一表单上的 Text 值如果TextBox 为空,则禁用Button。
【讨论】: