Trigger Sınıf

Tanım

Bir özellik koşulunu ve koşul karşılandığında gerçekleştirilen eylemi temsil eden sınıf.

[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
Devralma
System.Object
Trigger
Öznitelikler
Uygulamalar

Açıklamalar

Trigger sınıfı, eklendiği denetimdeki herhangi bir özelliğin değerlerini denetlemek için uygundur. Yani, varsayılan bağlama bağlamı eklendiği denetimdir. Üst öğe dışındaki denetimlere bağlanmak için geliştiriciler bunun yerine sınıfını DataTrigger kullanmalıdır.

Aşağıdaki XML örneği, kullanıcıdan gizli diziyi (yani "Metin rengi kırmızıdır") yazmasını ister. Kullanıcı gizli diziyi yazdığında, Giriş metninin rengi kırmızıya dönüşür. Kullanıcı gizli diziden farklı olacak şekilde metni düzenlerse kod varsayılan renge geri döner. Bu örnekte, bir tetikleyici ile kapsayan denetime nasıl bağlanacağınız gösterilmektedir.


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

Aşağıdaki örnekte geliştiricilerin olaylara yanıt vermek ve sınıfları kullanarak TriggerAction<T> bir denetim özelliğinin değerini güncelleştirmek için tetikleyiciyi nasıl kullanabileceği gösterilmektedir. Örnek, kullanıcıdan metnin rengiyle ilgili bir soruyu yanıtlamasını ister ve ardından kullanıcı "Metin rengi kırmızıdır" yazınca metni kırmızıya çevirmesini ister ColorTriggerAction . Geliştiriciler, bu örnekte kullanıcı dizeyi düzenlemeye devam ettiğinde metni varsayılan renge geri döndürmese de, geliştiricinin bu sonucu elde etmek için bir çıkış eylemi uygulayabileceğini ve belirtebileceğini unutmayın.

Aşağıda ad alanında tanımlanan ColorTriggerAction sınıfıyla TriggerDemo :

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

geliştirici, metin alanının rengini kırmızı olarak değiştirerek gizli diziye yanıt veren sayfayı oluşturmak için aşağıdaki XAML'yi Entry kullanabilir.

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

Oluşturucular

Trigger(Type)

Yeni Trigger bir örnek başlatır.

Özellikler

BindingContext

Bu BindableObjectöğesine ait ilişkili özellikler tarafından hedeflenecek özellikleri içeren nesneyi alır veya ayarlar.

(Devralındığı yer: BindableObject)
Dispatcher

Bir özellik koşulunu ve koşul karşılandığında gerçekleştirilen eylemi temsil eden sınıf.

(Devralındığı yer: BindableObject)
EnterActions

Tetikleyici koşulu karşılandığında çağrılacak nesnelerin listesini TriggerAction alır. sınıf için yoksayıldı EventTrigger .

(Devralındığı yer: TriggerBase)
ExitActions

Tetikleyici koşulu artık karşılanmadığında çağrılacak nesnelerin listesini TriggerAction alır. sınıf için yoksayıldı EventTrigger .

(Devralındığı yer: TriggerBase)
IsSealed

Tetikleyicinin korumalı olup olmadığını belirten bir değer alır.

(Devralındığı yer: TriggerBase)
Property

Ayarlayıcıların ne zaman çağrılacağını belirlemek için Value değeri karşılaştırılacak özelliğini alır veya ayarlar.

Setters

tarafından Property adlandırılan özellik değerine eşit Valueolduğunda uygulanacak nesnelerin listesini Setter alır.

TargetType

Bu TriggerBase nesnenin bağlanabileceği nesnenin türü.

(Devralındığı yer: TriggerBase)
Value

Ayarlayıcıların uygulanmasına neden olacak, özelliği tarafından Property adlandırılan özelliğinin değerini alır veya ayarlar.

Yöntemler

ApplyBindings()

bağlamalarını uygulamasına BindingContextuygulayın.

(Devralındığı yer: BindableObject)
ClearValue(BindableProperty)

için propertytarafından SetValue ayarlanan tüm değerleri temizler.

(Devralındığı yer: BindableObject)
ClearValue(BindablePropertyKey)

tarafından tanımlanan propertyKeyözelliği için tarafından SetValue ayarlanan tüm değerleri temizler.

(Devralındığı yer: BindableObject)
CoerceValue(BindableProperty)

Bir özellik koşulunu ve koşul karşılandığında gerçekleştirilen eylemi temsil eden sınıf.

(Devralındığı yer: BindableObject)
CoerceValue(BindablePropertyKey)

Bir özellik koşulunu ve koşul karşılandığında gerçekleştirilen eylemi temsil eden sınıf.

(Devralındığı yer: BindableObject)
GetValue(BindableProperty)

BindableProperty içinde yer alan değeri döndürür.

(Devralındığı yer: BindableObject)
GetValues(BindableProperty, BindableProperty)
Geçersiz.

Xamarin tarafından dahili kullanım için. Forms platformu.

(Devralındığı yer: BindableObject)
GetValues(BindableProperty, BindableProperty, BindableProperty)
Geçersiz.

Xamarin tarafından dahili kullanım için. Forms platformu.

(Devralındığı yer: BindableObject)
IsSet(BindableProperty)

Hedef özellik varsa ve ayarlanmışsa döndürür true .

(Devralındığı yer: BindableObject)
OnBindingContextChanged()

BindingContext değiştiğinde bir eylem yürütmek için bu yöntemi geçersiz kılın.

(Devralındığı yer: BindableObject)
OnPropertyChanged(String)

Bir özellikte değişiklik olduğunu bildirmek için bir alt sınıftan bu yöntemi çağırabilirsiniz.

(Devralındığı yer: BindableObject)
OnPropertyChanging(String)

Bir özellikte değişiklik olacağını bildirmek için bir alt sınıftan bu yöntemi çağırabilirsiniz.

(Devralındığı yer: BindableObject)
RemoveBinding(BindableProperty)

Önceden ayarlanmış bağlamayı kaldırır.

(Devralındığı yer: BindableObject)
SetBinding(BindableProperty, BindingBase)

Bir özelliğe bağlama atar.

(Devralındığı yer: BindableObject)
SetValue(BindableProperty, Object)

Belirtilen özelliğin değerini ayarlar.

(Devralındığı yer: BindableObject)
SetValue(BindablePropertyKey, Object)

propertyKey değerini ayarlar.

(Devralındığı yer: BindableObject)
SetValueCore(BindableProperty, Object, SetValueFlags)

Xamarin tarafından dahili kullanım için. Forms platformu.

(Devralındığı yer: BindableObject)
UnapplyBindings()

Önceden ayarlanmış tüm bağlamaları uygulamaz.

(Devralındığı yer: BindableObject)

Ekinlikler

BindingContextChanged

Özellik her değiştiğinde BindingContext oluşturulur.

(Devralındığı yer: BindableObject)
PropertyChanged

Bir özellik değiştiğinde oluşturulur.

(Devralındığı yer: BindableObject)
PropertyChanging

Bir özellik değişmek üzereyken tetikleniyor.

(Devralındığı yer: BindableObject)

Belirtik Arabirim Kullanımları

IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

Xamarin tarafından dahili kullanım için. Forms platformu.

(Devralındığı yer: BindableObject)
IValueProvider.ProvideValue(IServiceProvider)

Xamarin tarafından dahili kullanım için. Forms platformu.

Uzantı Metotları

GetPropertyIfSet<T>(BindableObject, BindableProperty, T)

Bir özellik koşulunu ve koşul karşılandığında gerçekleştirilen eylemi temsil eden sınıf.

SetAppThemeColor(BindableObject, BindableProperty, Color, Color)

Bir özellik koşulunu ve koşul karşılandığında gerçekleştirilen eylemi temsil eden sınıf.

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

Bir özelliğe bağlama oluşturur ve uygular.

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

bir ifadeden bağlama oluşturur ve uygular.

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

Bir özellik koşulunu ve koşul karşılandığında gerçekleştirilen eylemi temsil eden sınıf.

Şunlara uygulanır

Ayrıca bkz.