trigger wpf triggers datatrigger

wpf button triggers



¿Cuál es la diferencia entre un Trigger y un DataTrigger? (3)

La respuesta corta (cuando estoy a punto de dormir): un desencadenador funciona en propiedades de dependencia (generalmente propiedades de GUI) mientras que cualquier propiedad .NET puede desencadenar datos (normalmente una propiedad en un ViewModel que implementa INotifyPropertyChanged ).

Parecen lo mismo. ¿Hay una diferencia significativa? Creo que me estoy perdiendo algo.


Otra diferencia es que un DataTrigger puede vincularse a otro control, un StaticResource, etc., etc.

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

Solo puede examinar la instancia en la que se establece el estilo cuando usa un Trigger . Por ejemplo, un Trigger aplicado a un botón puede inspeccionar el valor de IsPressed , pero no podría inspeccionar el valor de IsPressed (por ejemplo) de un TextBox de TextBox en el mismo formulario si desea desactivar el Button si el TextBox estaba vacío. .


Un activador normal solo responde a las propiedades de dependencia.

Un desencadenante de datos puede ser desencadenado por cualquier propiedad .NET (estableciendo su propiedad de enlace). Sin embargo, sus implementadores aún pueden orientar solo las propiedades de dependencia.