Quelle est la différence entre un déclencheur et un DataTrigger?

Ils semblent pareils. Y a-t-il une différence significative? Je pense que je manque quelque chose.

Un déclencheur régulier ne répond qu’aux propriétés de dépendance.

Un déclencheur de données peut être déclenché par toute propriété .NET (en définissant sa propriété Binding). Cependant, ses créateurs peuvent toujours cibler uniquement les propriétés de dépendance.

Une autre différence est qu’un DataTrigger peut être lié à un autre contrôle, à un StaticResource, etc., etc.

  

Vous ne pouvez examiner que l’instance sur laquelle le style est défini lors de l’utilisation d’un Trigger . Par exemple, un Trigger appliqué à un bouton peut inspecter la valeur de IsPressed , mais il ne serait pas en mesure d’inspecter (par exemple) la valeur Text d’une zone de Text sur le même formulaire si vous souhaitez désactiver le Button si la zone de TextBox est vide .

La réponse courte (comme je vais m’endormir) – Un déclencheur fonctionne sur des propriétés de dépendance (généralement des propriétés d’interface graphique) alors que les déclencheurs de données peuvent être déclenchés par n’importe quelle propriété .NET (généralement une propriété ViewModel implémentant INotifyPropertyChanged )