Aracılığıyla paylaş


Trigger Sınıf

Tanım

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

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
Devralma
Ö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ı metni gizli diziden farklı olacak şekilde 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 bir denetim özelliğinin değerini güncelleştirmek için tetikleyiciyi nasıl kullanabileceği TriggerAction<T> gösterilmektedir. Örnek, kullanıcıdan metnin rengiyle ilgili bir soruyu yanıtlamasını ister ve kullanıcı "Metin rengi kırmızıdır" yazınca metni kırmızıya döndürmek için çağırır 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 ek olarak bir çıkış eylemi uygulayabileceğini ve belirtebileceğini unutmayın.

Aşağıdaki ColorTriggerAction sınıfı ad alanında TriggerDemo tanımlandığında:

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 olan ilişkili özellikler tarafından hedeflenecek özellikleri içeren bir nesnesi alır veya ayarlar. Bu, bağlanabilir bir özelliktir.

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

Bu bağlanabilir nesne oluşturulduğunda kullanılabilen dağıtıcıyı alır, aksi takdirde en yakın kullanılabilir dağıtıcıyı (büyük olasılıkla pencerenin/uygulamanınkiler) bulmaya çalışır.

(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ı gösteren 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()

Tüm geçerli bağlamaları öğesine BindingContextuygular.

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

Daha önce bağlanabilir bir özellik için ayarlanmış olan tüm değerleri temizler.

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

Daha önce bir bağlanabilir özellik için ayarlanmış olan ve anahtarıyla tanımlanan tüm değerleri temizler.

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

Belirtilen bağlanabilir özelliğin değerini zorlar. Bu, belirtilen bağlanabilir özellik çağrılarak BindableProperty.CoerceValueDelegate yapılır.

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

Belirtilen bağlanabilir özelliğin değerini zorlar. Bu, belirtilen bağlanabilir özellik çağrılarak BindableProperty.CoerceValueDelegate yapılır.

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

Verilen bağlanabilir özelliğin içerdiği değeri döndürür.

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

Bağlanabilir bir özelliğin var olup olmadığını ve bir değer kümesi olup olmadığını belirler.

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

Olayı tetikler BindingContextChanged .

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

Olayı tetikler PropertyChanged .

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

Olayı tetikler PropertyChanging .

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

Daha önce ayarlanmış bir bağlamayı bağlanabilir bir özellikten kaldırır.

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

Bağlanabilir bir özelliğe bağlama atar.

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

Belirtilen bağlanabilir özelliğin değerini ayarlar.

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

Belirtilen bağlanabilir özelliğin değerini ayarlar.

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

Geçerli bağlamdan tüm geçerli bağlamaları kaldırır.

(Devralındığı yer: BindableObject)

Ekinlikler

BindingContextChanged

Özelliğin değeri değiştiğinde BindingContext gerçekleşir.

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

Özellik değeri değiştiğinde gerçekleşir.

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

Özellik değeri değiştiğinde gerçekleşir.

(Devralındığı yer: BindableObject)

Belirtik Arabirim Kullanımları

IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

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

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

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

Uzantı Metotları

GetPropertyIfSet<T>(BindableObject, BindableProperty, T)

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

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

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

SetAppThemeColor(BindableObject, BindableProperty, Color, Color)

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

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

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

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

Kaynak nesnedeki bir özellik ile hedef nesnedeki bir özellik arasında bir bağlama oluşturur.

Şunlara uygulanır

Ayrıca bkz.