Condividi tramite


Trigger Classe

Definizione

Classe che rappresenta una condizione della proprietà e un'azione che viene eseguita quando viene soddisfatta la condizione.

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
Ereditarietà
Attributi
Implementazioni

Commenti

La Trigger classe è adatta per controllare i valori di qualsiasi proprietà nel controllo a cui è stato aggiunto. Ovvero, il contesto di associazione predefinito è il controllo a cui è stato aggiunto. Per eseguire l'associazione a controlli diversi dall'elemento padre, gli sviluppatori devono usare invece la DataTrigger classe .

L'esempio XML seguente richiede all'utente di digitare il segreto, ovvero "Il colore del testo è rosso". Quando l'utente ha digitato il segreto, il testo entry cambia colore in rosso. Il codice viene riattivato sul colore predefinito se l'utente modifica il testo in modo che differisca dal segreto. In questo esempio viene illustrato come eseguire l'associazione al controllo contenitore con un trigger.


<?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>

L'esempio seguente illustra come gli sviluppatori possono usare un trigger per rispondere agli eventi e aggiornare il valore di una proprietà di controllo usando TriggerAction<T> le classi . L'esempio chiede all'utente di rispondere a una domanda sul colore del testo e quindi chiama ColorTriggerAction per trasformare il testo in rosso quando l'utente digita "Il colore del testo è rosso". Gli sviluppatori devono notare che, mentre questo esempio non modifica il testo al colore predefinito quando l'utente continua a modificare la stringa, lo sviluppatore potrebbe anche implementare e specificare un'azione di uscita per ottenere tale risultato.

Con la classe ColorTriggerAction seguente definita nello spazio dei TriggerDemo nomi :

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

lo sviluppatore può usare il codice XAML seguente per creare la pagina che risponde alla stringa privata modificando il colore dell'area di Entry testo in rosso.

<?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>

Costruttori

Trigger(Type)

Inizializza una nuova istanza di Trigger.

Proprietà

BindingContext

Ottiene o imposta un oggetto che contiene le proprietà di destinazione delle proprietà associate che appartengono a questo BindableObjectoggetto . Si tratta di una proprietà associabile.

(Ereditato da BindableObject)
Dispatcher

Ottiene il dispatcher disponibile al momento della creazione di questo oggetto associabile. In caso contrario, tenta di trovare il dispatcher più vicino disponibile (probabilmente quello della finestra o dell'app).

(Ereditato da BindableObject)
EnterActions

Ottiene l'elenco di oggetti TriggerAction che vengono richiamati quando si verifica la condizione di attivazione. Ignorato per la classe EventTrigger.

(Ereditato da TriggerBase)
ExitActions

Ottiene l'elenco di oggetti TriggerAction che vengono richiamati quando non si verifica più la condizione di attivazione. Ignorato per la classe EventTrigger.

(Ereditato da TriggerBase)
IsSealed

Ottiene un valore che indica se il trigger è Sealed.

(Ereditato da TriggerBase)
Property

Ottiene o imposta la proprietà il cui valore verrà confrontato con Value per determinare quando richiamare i setter.

Setters

Ottiene l'elenco di oggetti Setter che verranno applicati quando la proprietà denominata da Property diventa uguale a Value.

TargetType

Il tipo di oggetto a cui questo oggetto TriggerBase può essere associato.

(Ereditato da TriggerBase)
Value

Ottiene o imposta il valore della proprietà denominata dalla proprietà Property, che determina l'applicazione dei setter.

Metodi

ApplyBindings()

Applica tutte le associazioni correnti a BindingContext.

(Ereditato da BindableObject)
ClearValue(BindableProperty)

Cancella qualsiasi valore impostato in precedenza per una proprietà associabile.

(Ereditato da BindableObject)
ClearValue(BindablePropertyKey)

Cancella qualsiasi valore impostato in precedenza per una proprietà associabile, identificata dalla relativa chiave.

(Ereditato da BindableObject)
CoerceValue(BindableProperty)

Forza il valore della proprietà associabile specificata. Questa operazione viene eseguita richiamando BindableProperty.CoerceValueDelegate la proprietà associabile specificata.

(Ereditato da BindableObject)
CoerceValue(BindablePropertyKey)

Forza il valore della proprietà associabile specificata. Questa operazione viene eseguita richiamando BindableProperty.CoerceValueDelegate la proprietà associabile specificata.

(Ereditato da BindableObject)
GetValue(BindableProperty)

Restituisce il valore contenuto nella proprietà associabile specificata.

(Ereditato da BindableObject)
IsSet(BindableProperty)

Determina se esiste o meno una proprietà associabile e ha un valore impostato.

(Ereditato da BindableObject)
OnBindingContextChanged()

Genera l'evento BindingContextChanged.

(Ereditato da BindableObject)
OnPropertyChanged(String)

Genera l'evento PropertyChanged.

(Ereditato da BindableObject)
OnPropertyChanging(String)

Genera l'evento PropertyChanging.

(Ereditato da BindableObject)
RemoveBinding(BindableProperty)

Rimuove un'associazione impostata in precedenza da una proprietà associabile.

(Ereditato da BindableObject)
SetBinding(BindableProperty, BindingBase)

Assegna un'associazione a una proprietà associabile.

(Ereditato da BindableObject)
SetValue(BindableProperty, Object)

Imposta il valore della proprietà associabile specificata.

(Ereditato da BindableObject)
SetValue(BindablePropertyKey, Object)

Imposta il valore della proprietà associabile specificata.

(Ereditato da BindableObject)
UnapplyBindings()

Rimuove tutte le associazioni correnti dal contesto corrente.

(Ereditato da BindableObject)

Eventi

BindingContextChanged

Si verifica quando il valore della proprietà BindingContext cambia.

(Ereditato da BindableObject)
PropertyChanged

Si verifica quando un valore della proprietà viene modificato.

(Ereditato da BindableObject)
PropertyChanging

Si verifica quando il valore di una proprietà cambia.

(Ereditato da BindableObject)

Implementazioni dell'interfaccia esplicita

IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

Classe che rappresenta una condizione della proprietà e un'azione che viene eseguita quando viene soddisfatta la condizione.

(Ereditato da BindableObject)
IValueProvider.ProvideValue(IServiceProvider)

Classe che rappresenta una condizione della proprietà e un'azione che viene eseguita quando viene soddisfatta la condizione.

Metodi di estensione

GetPropertyIfSet<T>(BindableObject, BindableProperty, T)

Classe che rappresenta una condizione della proprietà e un'azione che viene eseguita quando viene soddisfatta la condizione.

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

Classe che rappresenta una condizione della proprietà e un'azione che viene eseguita quando viene soddisfatta la condizione.

SetAppThemeColor(BindableObject, BindableProperty, Color, Color)

Classe che rappresenta una condizione della proprietà e un'azione che viene eseguita quando viene soddisfatta la condizione.

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

Crea un'associazione e la applica a una proprietà.

SetBinding<TSource,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object)

Crea un'associazione tra una proprietà nell'oggetto di origine e una proprietà nell'oggetto di destinazione.

Si applica a

Vedi anche