触发器和数据触发器有什么区别?

发布于 2024-11-17 10:43:33 字数 35 浏览 0 评论 0原文

他们看起来是一样的。有显着差异吗?我想我错过了一些东西。

They seem the same. Is there a significant difference? I think I am missing something.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

幻梦 2024-11-24 10:43:33

常规触发器仅响应依赖属性。

DataTrigger 可以由任何 .NET 属性触发(通过设置其 Binding 属性)。但是,它的 setter 仍然可以仅针对依赖属性。

A regular Trigger only responds to dependency properties.

A DataTrigger can be triggered by any .NET property (by setting its Binding property). However, its setters can still target only dependency properties.

初熏 2024-11-24 10:43:33

另一个区别是,DataTrigger 可以绑定到另一个控件、StaticResource 等。

<Style TargetType="TextBox">
  <Style.Triggers>
    <DataTrigger 
      Binding="{Binding SomeProperty, 
                        ElementName=someOtherControl" 
      Value="Derp">
      <!-- etc -->

使用Trigger 时,您只能检查设置样式的实例。例如,应用于 Button 的 Trigger 可以检查 IsPressed 的值,但无法检查(例如)Text > 如果您希望在 TextBox 为空时禁用 Button,请使用同一表单上 TextBox 的值。

Another difference is that a DataTrigger can be bound to another control, a StaticResource, etc etc.

<Style TargetType="TextBox">
  <Style.Triggers>
    <DataTrigger 
      Binding="{Binding SomeProperty, 
                        ElementName=someOtherControl" 
      Value="Derp">
      <!-- etc -->

You can only examine the instance on which the style is set when using a Trigger. For example, a Trigger applied to a Button can inspect the value of IsPressed, but it would not be able to inspect the (for example) Text value of a TextBox on the same form if you wished to disable the Button if the TextBox was empty.

短暂陪伴 2024-11-24 10:43:33

简短的回答(因为我要睡觉了)-触发器适用于 依赖属性(通常是 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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文