触发器和数据触发器有什么区别?
他们看起来是一样的。有显着差异吗?我想我错过了一些东西。
They seem the same. Is there a significant difference? I think I am missing something.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
他们看起来是一样的。有显着差异吗?我想我错过了一些东西。
They seem the same. Is there a significant difference? I think I am missing something.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
常规
触发器
仅响应依赖属性。DataTrigger
可以由任何 .NET 属性触发(通过设置其Binding
属性)。但是,它的 setter 仍然可以仅针对依赖属性。A regular
Trigger
only responds to dependency properties.A
DataTrigger
can be triggered by any .NET property (by setting itsBinding
property). However, its setters can still target only dependency properties.另一个区别是,
DataTrigger
可以绑定到另一个控件、StaticResource 等。使用
Trigger
时,您只能检查设置样式的实例。例如,应用于 Button 的Trigger
可以检查IsPressed
的值,但无法检查(例如)Text
> 如果您希望在TextBox
为空时禁用Button
,请使用同一表单上TextBox
的值。Another difference is that a
DataTrigger
can be bound to another control, a StaticResource, etc etc.You can only examine the instance on which the style is set when using a
Trigger
. For example, aTrigger
applied to a Button can inspect the value ofIsPressed
, but it would not be able to inspect the (for example)Text
value of aTextBox
on the same form if you wished to disable theButton
if theTextBox
was empty.简短的回答(因为我要睡觉了)-触发器适用于 依赖属性(通常是 GUI 属性),而数据触发器可以由任何 .NET 属性(通常是 ViewModel 中实现 INotifyPropertyChanged)。
The short answer (as I'm about to sleep)- A trigger works on dependency properties (typically GUI properties) whereas data triggers can be triggered by any .NET property (typically a property in a ViewModel that implements INotifyPropertyChanged).