Freigeben über


Trigger Klasse

Definition

Klasse, die eine Eigenschaftenbedingung und eine Aktion darstellt, die ausgeführt wird, wenn die Bedingung erfüllt ist.

[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
Vererbung
System.Object
Trigger
Attribute
Implementiert

Hinweise

Die Trigger -Klasse eignet sich zum Überprüfen der Werte einer beliebigen Eigenschaft für das Steuerelement, dem sie hinzugefügt wurde. Das heißt, der Standardbindungskontext ist das Steuerelement, dem es hinzugefügt wurde. Um an andere Steuerelemente als das übergeordnete Steuerelement zu binden, sollten Entwickler stattdessen die DataTrigger -Klasse verwenden.

Im folgenden XML-Beispiel wird der Benutzer aufgefordert, das Geheimnis einzugeben, d. h. "Die Textfarbe ist rot". Wenn der Benutzer das Geheimnis eingegeben hat, ändert sich der Eintragstext in Rot. Der Code wird auf die Standardfarbe zurückgesetzt, wenn der Benutzer den Text dann so bearbeitet, dass er sich vom Geheimnis unterscheidet. In diesem Beispiel wird gezeigt, wie sie mit einem Trigger an das einschließende Steuerelement gebunden werden.


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

Das folgende Beispiel zeigt, wie Entwickler einen Trigger verwenden können, um auf Ereignisse zu reagieren und den Wert einer Steuerelementeigenschaft mithilfe TriggerAction<T> von Klassen zu aktualisieren. Im Beispiel wird der Benutzer aufgefordert, eine Frage zur Farbe des Texts zu beantworten, und ruft dann auf ColorTriggerAction , den Text rot zu drehen, wenn der Benutzer "Die Textfarbe ist rot" eingibt. Entwickler sollten beachten, dass in diesem Beispiel der Text zwar nicht wieder in die Standardfarbe geändert wird, wenn der Benutzer die Zeichenfolge weiter bearbeitet, der Entwickler jedoch zusätzlich eine Exitaktion implementieren und angeben kann, um dieses Ergebnis zu erhalten.

Mit der unten im TriggerDemo Namespace definierten ColorTriggerAction-Klasse:

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

Der Entwickler kann den folgenden XAML-Code verwenden, um die Seite zu erstellen, die auf die geheime Zeichenfolge reagiert, indem er die Farbe des Entry Textbereichs in Rot ändert.

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

Konstruktoren

Trigger(Type)

Initialisiert eine neue Instanz von Trigger.

Eigenschaften

BindingContext

Ruft das Objekt ab, das die Eigenschaften enthält, die von den gebundenen Eigenschaften dieses BindableObject-Objekts angezielt werden, oder legt es fest.

(Geerbt von BindableObject)
Dispatcher

Klasse, die eine Eigenschaftenbedingung und eine Aktion darstellt, die ausgeführt wird, wenn die Bedingung erfüllt ist.

(Geerbt von BindableObject)
EnterActions

Ruft die Liste mit TriggerAction-Objekten ab, die ausgelöst werden, wenn die Triggerbedingung erfüllt ist. Wird für die EventTrigger-Klasse ignoriert.

(Geerbt von TriggerBase)
ExitActions

Ruft die Liste mit TriggerAction-Objekten ab, die ausgelöst wird, wenn die Triggerbedingung nicht mehr erfüllt ist. Wird für die EventTrigger-Klasse ignoriert.

(Geerbt von TriggerBase)
IsSealed

Ruft einen Wert ab, der angibt, ob der Trigger versiegelt ist.

(Geerbt von TriggerBase)
Property

Ruft die Eigenschaft ab, deren Wert mit Value verglichen wird, um zu bestimmen, wann die Setter aufgerufen werden sollen, oder legt diese fest.

Setters

Ruft die Liste mit Setter-Objekten ab, die angewendet werden, wenn die von Property benannte Eigenschaft Value entspricht.

TargetType

Der Typ des Objekts, an das dieses TriggerBase-Objekt angefügt werden kann.

(Geerbt von TriggerBase)
Value

Ruft den Wert der nach der Property-Eigenschaft benannten Eigenschaft ab, bei dem die Setter angewendet werden, oder legt diesen fest.

Methoden

ApplyBindings()

Wendet die Bindungen auf BindingContext an.

(Geerbt von BindableObject)
ClearValue(BindableProperty)

Löscht alle Werte, die von SetValue für property festgelegt wurden.

(Geerbt von BindableObject)
ClearValue(BindablePropertyKey)

Löscht alle Werte, die von SetValue für die Eigenschaft festgelegt wurden, die durch propertyKey ermittelt wird.

(Geerbt von BindableObject)
CoerceValue(BindableProperty)

Klasse, die eine Eigenschaftenbedingung und eine Aktion darstellt, die ausgeführt wird, wenn die Bedingung erfüllt ist.

(Geerbt von BindableObject)
CoerceValue(BindablePropertyKey)

Klasse, die eine Eigenschaftenbedingung und eine Aktion darstellt, die ausgeführt wird, wenn die Bedingung erfüllt ist.

(Geerbt von BindableObject)
GetValue(BindableProperty)

Gibt den Wert zurück, der in der BindableProperty-Klasse enthalten ist.

(Geerbt von BindableObject)
GetValues(BindableProperty, BindableProperty, BindableProperty)
Veraltet.

Für die interne Verwendung durch die Xamarin.Forms-Plattform.

(Geerbt von BindableObject)
GetValues(BindableProperty, BindableProperty)
Veraltet.

Für die interne Verwendung durch die Xamarin.Forms-Plattform.

(Geerbt von BindableObject)
IsSet(BindableProperty)

Gibt true zurück, wenn die Zieleigenschaft vorhanden ist und festgelegt wurde.

(Geerbt von BindableObject)
OnBindingContextChanged()

Überschreibt diese Methode, um eine Aktion auszuführen, wenn die BindingContext-Klasse geändert wird.

(Geerbt von BindableObject)
OnPropertyChanged(String)

Ruft diese Methode aus einer untergeordneten Klasse auf, um eine Benachrichtigung anzuzeigen, dass eine Eigenschaft geändert wurde.

(Geerbt von BindableObject)
OnPropertyChanging(String)

Ruft diese Methode aus einer untergeordneten Klasse auf, um eine Benachrichtigung anzuzeigen, dass eine Eigenschaft geändert wird.

(Geerbt von BindableObject)
RemoveBinding(BindableProperty)

Entfernt eine zuvor festgelegte Bindung.

(Geerbt von BindableObject)
SetBinding(BindableProperty, BindingBase)

Weist eine Bindung einer Eigenschaft zu.

(Geerbt von BindableObject)
SetValue(BindableProperty, Object)

Legt den Wert der angegebenen Eigenschaft fest.

(Geerbt von BindableObject)
SetValue(BindablePropertyKey, Object)

Legt den Wert von „propertyKey“ fest.

(Geerbt von BindableObject)
SetValueCore(BindableProperty, Object, SetValueFlags)

Für die interne Verwendung durch die Xamarin.Forms-Plattform.

(Geerbt von BindableObject)
UnapplyBindings()

Hebt alle zuvor festgelegten Bindungen auf.

(Geerbt von BindableObject)

Ereignisse

BindingContextChanged

Wird ausgelöst, wenn sich die BindingContext-Eigenschaft ändert.

(Geerbt von BindableObject)
PropertyChanged

Wird ausgelöst, wenn eine Eigenschaft geändert wurde.

(Geerbt von BindableObject)
PropertyChanging

Wird ausgelöst, wenn eine Eigenschaft geändert wird.

(Geerbt von BindableObject)

Explizite Schnittstellenimplementierungen

IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

Für die interne Verwendung durch die Xamarin.Forms-Plattform.

(Geerbt von BindableObject)
IValueProvider.ProvideValue(IServiceProvider)

Für die interne Verwendung durch die Xamarin.Forms-Plattform.

Erweiterungsmethoden

GetPropertyIfSet<T>(BindableObject, BindableProperty, T)

Klasse, die eine Eigenschaftenbedingung und eine Aktion darstellt, die ausgeführt wird, wenn die Bedingung erfüllt ist.

SetAppThemeColor(BindableObject, BindableProperty, Color, Color)

Klasse, die eine Eigenschaftenbedingung und eine Aktion darstellt, die ausgeführt wird, wenn die Bedingung erfüllt ist.

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

Erstellt eine Bindung mit einer Eigenschaft und wendet diese an.

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

Erstellt eine Bindung aus einem Ausdruck und wendet diese an.

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

Klasse, die eine Eigenschaftenbedingung und eine Aktion darstellt, die ausgeführt wird, wenn die Bedingung erfüllt ist.

Gilt für:

Weitere Informationen