Compartir a través de


Trigger Clase

Definición

Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición.

[Xamarin.Forms.ContentProperty("Setters")]
[Xamarin.Forms.Xaml.AcceptEmptyServiceProvider]
public sealed class Trigger : Xamarin.Forms.TriggerBase, Xamarin.Forms.Xaml.IValueProvider
type Trigger = class
    inherit TriggerBase
    interface IValueProvider
Herencia
System.Object
Trigger
Atributos
Implementaciones

Comentarios

La Trigger clase es adecuada para comprobar los valores de cualquier propiedad del control al que se ha agregado. Es decir, su contexto de enlace predeterminado es el control al que se ha agregado. Para enlazar controles distintos de los primarios, los desarrolladores deben usar la DataTrigger clase en su lugar.

En el ejemplo XML siguiente se pide al usuario que escriba en el secreto, es decir, "El color del texto es rojo". Cuando el usuario ha escrito el secreto, el texto De entrada cambia el color a rojo. El código se vuelve al color predeterminado si el usuario edita el texto para diferir del secreto. En este ejemplo se muestra cómo enlazar al control envolvente con un desencadenador.


<?xml version="1.0" encoding="utf-8"?>
<ContentPage    xmlns="http://xamarin.com/schemas/2014/forms"
                xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                xmlns:local="clr-namespace:TriggerDemo"
                x:Class="TriggerDemo.TriggerDemoPage">
<StackLayout VerticalOptions="Center">
<Label Text="Tell me the secret"
               VerticalOptions="Center"
               HorizontalOptions="Center" />
<Entry Placeholder="Type the secret here."
               VerticalOptions="Center"
               HorizontalOptions="Center">
<Entry.Triggers>
<Trigger TargetType="Entry"
                    Property="Text"
                    Value="The text color is red">
<Setter Property="TextColor" Value="Red" />
</Trigger>
</Entry.Triggers>
</Entry>
</StackLayout>
</ContentPage>

En el ejemplo siguiente se muestra cómo los desarrolladores pueden usar un desencadenador para responder a eventos y actualizar el valor de una propiedad de control mediante TriggerAction<T> clases. En el ejemplo se pide al usuario que responda a una pregunta sobre el color del texto y, a continuación, llama ColorTriggerAction a para activar el texto rojo cuando el usuario escribe "El color del texto es rojo". Los desarrolladores deben tener en cuenta que, aunque en este ejemplo no se cambia el texto al color predeterminado cuando el usuario sigue editando la cadena, el desarrollador podría implementar y especificar una acción de salida para obtener ese resultado.

Con la clase ColorTriggerAction siguiente definida en el TriggerDemo espacio de nombres :

public class ColorTriggerAction : TriggerAction<Entry>
{
    protected override void Invoke(Entry sender)
    {
        sender.TextColor = Color.Red;
    }
}

El desarrollador puede usar el código XAML siguiente para crear la página que responde a la cadena secreta cambiando el color del área de Entry texto a rojo.

<?xml version="1.0" encoding="utf-8"?>
<ContentPage    xmlns="http://xamarin.com/schemas/2014/forms"
                xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                xmlns:local="clr-namespace:TriggerDemo"
                x:Class="TriggerDemo.TriggerDemoPage">
<StackLayout VerticalOptions="Center">
<Label Text="What color is &quot;The text&quot;?"
               VerticalOptions="Center"
               HorizontalOptions="Center" />
<Entry Placeholder="Type answer here."
               VerticalOptions="Center"
               HorizontalOptions="Center"
               BackgroundColor="White">
<Entry.Triggers>
<Trigger TargetType="Entry"
                         Property="Text"
                         Value="The text is red" >
<Trigger.EnterActions>
<local:ColorTriggerAction />
</Trigger.EnterActions>
</Trigger>
</Entry.Triggers>
</Entry>
</StackLayout>
</ContentPage>

Constructores

Trigger(Type)

Inicializa una nueva instancia de Trigger.

Propiedades

BindingContext

Obtiene o establece el objeto que contiene las propiedades que van a dirigir las propiedades enlazadas que pertenecen a este BindableObject.

(Heredado de BindableObject)
Dispatcher

Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición.

(Heredado de BindableObject)
EnterActions

Obtiene la lista de objetos TriggerAction que se invocará cuando se cumpla la condición del desencadenador. Se ignora para la clase EventTrigger

(Heredado de TriggerBase)
ExitActions

Obtiene la lista de objetos TriggerAction que se invocará después de que la condición del desencadenador ya no se cumpla. Se ignora para la clase EventTrigger

(Heredado de TriggerBase)
IsSealed

Obtiene un valor que indica si el desencadenador está sellado o no.

(Heredado de TriggerBase)
Property

Obtiene o establece la propiedad cuyo valor se comparará con Value para determinar cuándo se deben invocar los establecedores.

Setters

Obtiene la lista de objetos Setter que se aplicarán cuando la propiedad que Property denomina sea igual a Value.

TargetType

El tipo de objeto al que se puede adjuntar este objeto TriggerBase.

(Heredado de TriggerBase)
Value

Obtiene o establece el valor de la propiedad, denominada por la propiedad Property, que hará que se apliquen los establecedores.

Métodos

ApplyBindings()

Aplica los enlaces a BindingContext.

(Heredado de BindableObject)
ClearValue(BindableProperty)

Borra cualquier valor establecido por SetValue para property.

(Heredado de BindableObject)
ClearValue(BindablePropertyKey)

Borra cualquier valor establecido por SetValue para la propiedad que propertyKey identifica.

(Heredado de BindableObject)
CoerceValue(BindableProperty)

Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición.

(Heredado de BindableObject)
CoerceValue(BindablePropertyKey)

Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición.

(Heredado de BindableObject)
GetValue(BindableProperty)

Devuelve el valor contenido en la propiedad BindableProperty.

(Heredado de BindableObject)
GetValues(BindableProperty, BindableProperty)
Obsoletos.

Para uso interno de la plataforma de Xamarin.Forms.

(Heredado de BindableObject)
GetValues(BindableProperty, BindableProperty, BindableProperty)
Obsoletos.

Para uso interno de la plataforma de Xamarin.Forms.

(Heredado de BindableObject)
IsSet(BindableProperty)

Devuelve true si existe y se ha establecido la propiedad de destino.

(Heredado de BindableObject)
OnBindingContextChanged()

Reemplaza este método para ejecutar una acción cuando BindingContext cambia.

(Heredado de BindableObject)
OnPropertyChanged(String)

Llama a este método desde una clase secundaria para notificar que se produjo un cambio en una propiedad.

(Heredado de BindableObject)
OnPropertyChanging(String)

Llama a este método desde una clase secundaria para notificar que se va a producir un cambio en una propiedad.

(Heredado de BindableObject)
RemoveBinding(BindableProperty)

Quita un enlace definida previamente.

(Heredado de BindableObject)
SetBinding(BindableProperty, BindingBase)

Asigna un enlace a una propiedad.

(Heredado de BindableObject)
SetValue(BindableProperty, Object)

Establece el valor de la propiedad especificada.

(Heredado de BindableObject)
SetValue(BindablePropertyKey, Object)

Establece el valor de la propiedad propertyKey.

(Heredado de BindableObject)
SetValueCore(BindableProperty, Object, SetValueFlags)

Para uso interno de la plataforma de Xamarin.Forms.

(Heredado de BindableObject)
UnapplyBindings()

Deshace todos los enlaces establecidos previamente.

(Heredado de BindableObject)

Eventos

BindingContextChanged

Se produce siempre que cambia la propiedad BindingContext.

(Heredado de BindableObject)
PropertyChanged

Se produce cuando ha cambiado una propiedad.

(Heredado de BindableObject)
PropertyChanging

Se produce cuando una propiedad está a punto de cambiar.

(Heredado de BindableObject)

Implementaciones de interfaz explícitas

IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

Para uso interno de la plataforma de Xamarin.Forms.

(Heredado de BindableObject)
IValueProvider.ProvideValue(IServiceProvider)

Para uso interno de la plataforma de Xamarin.Forms.

Métodos de extensión

GetPropertyIfSet<T>(BindableObject, BindableProperty, T)

Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición.

SetAppThemeColor(BindableObject, BindableProperty, Color, Color)

Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición.

SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String)

Crea y aplica un enlace a una propiedad.

SetBinding<TSource>(BindableObject, BindableProperty, Expression<Func<TSource,Object>>, BindingMode, IValueConverter, String)
Obsoletos.

Crea y aplica un enlace desde una expresión.

SetOnAppTheme<T>(BindableObject, BindableProperty, T, T)

Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición.

Se aplica a

Consulte también