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
Öznitelikler
Uygulamalar

Açıklamalar

TriggerSınıfı, eklendiği denetimdeki herhangi bir özelliğin değerlerini denetlemek için uygundur. Diğer bir deyişle, varsayılan bağlama bağlamı, eklendiği denetimdir. Üst öğeden farklı denetimlere bağlamak için, geliştiricilerin sınıfını kullanması gerekir DataTrigger .

Aşağıdaki XML örneği, kullanıcıdan gizli dizi ("metin rengi kırmızı") yazmayı ister. Kullanıcı parolayı yazmışsa, giriş metni rengi kırmızı olarak değiştirir. Kullanıcı daha sonra metni gizli dizilerden farklı olacak şekilde düzenlerse, kod varsayılan renge geri açılır. Bu örnek, bir tetikleyiciyle kapsayan denetimin nasıl bağlanacağını gösterir.


<?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 bir denetim özelliğinin değerini sınıflar kullanarak güncelleştirmek için bir tetikleyiciyi nasıl kullanabileceği gösterilmektedir TriggerAction<T> . Örnek, kullanıcıdan metnin rengi hakkında bir soru yanıtlamasını ister ve sonra metni "metin rengi kırmızı" olarak yazdığında metni kırmızıya açmak için Colortriggeraction ' ı çağırır. Geliştiriciler, Kullanıcı dizeyi düzenlemeye devam ettiğinde bu örnek metni varsayılan renge geri değiştirmediğini unutmayın, geliştirici ek olarak uygulayabilir ve bu sonucu elde etmek için bir çıkış eylemi belirtebilir.

Aşağıdaki ColorTriggerAction sınıfı ile Triggerdemo ad alanında tanımlanmıştır:

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 dizeye yanıt veren sayfayı oluşturmak için aşağıdaki XAML 'yi kullanabilir Entry .

<?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 bir Trigger örneği başlatır.

Özellikler

BindingContext

Buna ait olan bağlı özellikler tarafından hedeflenecek özellikleri içeren nesneyi alır veya ayarlar BindableObject .

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

TriggerActionTetikleyici koşulu karşılandığında çağrılacak nesne listesini alır. Sınıf için yoksayıldı EventTrigger .

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

TriggerActionTetikleyici koşulu artık karşılanmazsa çağrılacak nesne listesini alır. Sınıf için yoksayıldı EventTrigger .

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

Tetikleyicinin korumalı olup olmadığını gösteren bir değer alır.

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

ValueAyarlayıcılarının ne zaman çağırılacağını belirleme değeri ile Karşılaştırılacak özelliği alır veya ayarlar.

Setters

SetterTarafından adlandırılan özellik Property değerine eşit hale geldiğinde uygulanacak nesnelerin listesini alır Value .

TargetType

Bu TriggerBase nesnenin iliştirilebilecek nesne türü.

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

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

Yöntemler

ApplyBindings()

Bağlamaları uygulamasına uygulayın BindingContext .

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

İçin tarafından ayarlanan her değeri SetValue temizler property .

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

Tarafından tanımlanan özelliği için tarafından ayarlanan herhangi bir değeri temizler SetValue propertyKey .

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

Bindadbleproperty içinde bulunan değeri döndürür.

(Devralındığı yer: BindableObject)
GetValues(BindableProperty, BindableProperty)
Kullanımdan kalktı.

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

(Devralındığı yer: BindableObject)
GetValues(BindableProperty, BindableProperty, BindableProperty)
Kullanımdan kalktı.

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

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

trueTarget özelliği varsa ve ayarlandıysa, döndürür.

(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 bu yöntemi bir alt sınıftan çağırın.

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

Bir özellik üzerinde bir değişikliğin gerçekleşmesini bildirmek için bu yöntemi bir alt sınıftan çağırın.

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

Daha önce ayarlanan 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. Forms platformu tarafından dahili kullanım için.

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

Daha önce ayarlanan tüm bağlamalar için geçerli değildir.

(Devralındığı yer: BindableObject)

etkinlik

BindingContextChanged

Özellik her değiştiğinde tetiklenir BindingContext .

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

Bir özellik değiştiğinde tetiklenir.

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

Bir özellik değiştirmek üzere olduğunda tetiklenir.

(Devralındığı yer: BindableObject)

Belirtik Arabirim Kullanımları

IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

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

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

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

Uzantı Metotları

GetPropertyIfSet<T>(BindableObject, BindableProperty, T)
SetAppThemeColor(BindableObject, BindableProperty, Color, Color)
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)
Kullanımdan kalktı.

Bir ifadeden bir bağlama oluşturur ve uygular.

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

Şunlara uygulanır

Ayrıca bkz.