Trigger和DataTrigger有什么区别?

问题描述 投票:46回答:3

它们看起来是一样的。有什么显著的区别吗?我想我错过了什么。

wpf triggers datatrigger
3个回答
48
投票

一个普通的 Trigger 只响应依赖性属性。

A DataTrigger 可以由任何.NET属性触发(通过设置其 Binding 属性)。) 然而,它的设置器仍然只能针对依赖属性。


27
投票

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

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

当使用一个 Trigger. 例如,a Trigger 应用于Button,可以检查 IsPressed但它无法检查(例如) Text 价值 TextBox 如果您希望禁用该功能,请在同一张表格上选择 Button 如果 TextBox 是空的。


17
投票

简短的回答(当我要睡觉的时候)--触发器工作在 依赖属性 (典型的是GUI属性),而数据触发器可以由任何.NET属性(典型的是ViewModel中的一个实现了 INotifyPropertyChanged).

© www.soinside.com 2019 - 2024. All rights reserved.