Trigger Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición.
public ref class Trigger sealed : Microsoft::Maui::Controls::TriggerBase, Microsoft::Maui::Controls::Xaml::IValueProvider
[Microsoft.Maui.Controls.ContentProperty("Setters")]
[Microsoft.Maui.Controls.Xaml.AcceptEmptyServiceProvider]
public sealed class Trigger : Microsoft.Maui.Controls.TriggerBase, Microsoft.Maui.Controls.Xaml.IValueProvider
[<Microsoft.Maui.Controls.ContentProperty("Setters")>]
[<Microsoft.Maui.Controls.Xaml.AcceptEmptyServiceProvider>]
type Trigger = class
inherit TriggerBase
interface IValueProvider
Public NotInheritable Class Trigger
Inherits TriggerBase
Implements IValueProvider
- Herencia
- 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 del elemento primario, 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 este ejemplo no 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 "The text"?"
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 un objeto que contiene las propiedades destinadas a las propiedades enlazadas que pertenecen a este BindableObjectobjeto . Esta es una propiedad enlazable. (Heredado de BindableObject) |
Dispatcher |
Obtiene el distribuidor que estaba disponible cuando se creó este objeto enlazable; de lo contrario, intenta encontrar el distribuidor disponible más cercano (probablemente el de la ventana o la aplicació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 todos los enlaces actuales a BindingContext. (Heredado de BindableObject) |
ClearValue(BindableProperty) |
Borra cualquier valor establecido previamente para una propiedad enlazable. (Heredado de BindableObject) |
ClearValue(BindablePropertyKey) |
Borra cualquier valor establecido previamente para una propiedad enlazable, identificada por su clave. (Heredado de BindableObject) |
CoerceValue(BindableProperty) |
Convierte el valor de la propiedad enlazable especificada. Para ello, se invoca BindableProperty.CoerceValueDelegate la propiedad enlazable especificada. (Heredado de BindableObject) |
CoerceValue(BindablePropertyKey) |
Convierte el valor de la propiedad enlazable especificada. Para ello, se invoca BindableProperty.CoerceValueDelegate la propiedad enlazable especificada. (Heredado de BindableObject) |
GetValue(BindableProperty) |
Devuelve el valor contenido en la propiedad enlazable especificada. (Heredado de BindableObject) |
IsSet(BindableProperty) |
Determina si existe o no una propiedad enlazable y tiene un valor establecido. (Heredado de BindableObject) |
OnBindingContextChanged() |
Genera el evento BindingContextChanged. (Heredado de BindableObject) |
OnPropertyChanged(String) |
Genera el evento PropertyChanged. (Heredado de BindableObject) |
OnPropertyChanging(String) |
Genera el evento PropertyChanging. (Heredado de BindableObject) |
RemoveBinding(BindableProperty) |
Quita un enlace establecido previamente de una propiedad enlazable. (Heredado de BindableObject) |
SetBinding(BindableProperty, BindingBase) |
Asigna un enlace a una propiedad enlazable. (Heredado de BindableObject) |
SetValue(BindableProperty, Object) |
Establece el valor de la propiedad enlazable especificada. (Heredado de BindableObject) |
SetValue(BindablePropertyKey, Object) |
Establece el valor de la propiedad enlazable especificada. (Heredado de BindableObject) |
UnapplyBindings() |
Quita todos los enlaces actuales del contexto actual. (Heredado de BindableObject) |
Eventos
BindingContextChanged |
Se produce cuando cambia el valor de la propiedad BindingContext. (Heredado de BindableObject) |
PropertyChanged |
Se produce cuando un valor de propiedad cambia. (Heredado de BindableObject) |
PropertyChanging |
Se produce cuando cambia el valor de una propiedad. (Heredado de BindableObject) |
Implementaciones de interfaz explícitas
IDynamicResourceHandler.SetDynamicResource(BindableProperty, String) |
Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición. (Heredado de BindableObject) |
IValueProvider.ProvideValue(IServiceProvider) |
Clase que representa una condición de propiedad y una acción que se realiza cuando se cumple la condición. |
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. |
SetAppTheme<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. |
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,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object) |
Crea un enlace entre una propiedad en el objeto de origen y una propiedad en el objeto de destino. |