Bagikan melalui


Trigger Kelas

Definisi

Kelas yang mewakili kondisi properti dan tindakan yang dilakukan saat kondisi terpenuhi.

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
Warisan
Atribut
Penerapan

Keterangan

Kelas Trigger ini cocok untuk memeriksa nilai properti apa pun pada kontrol yang telah ditambahkan. Artinya, konteks pengikatan defaultnya adalah kontrol yang telah ditambahkan. Untuk mengikat kontrol selain induk, pengembang harus menggunakan kelas sebagai gantinya DataTrigger .

Contoh XML di bawah ini meminta pengguna untuk mengetik rahasia, yaitu, "Warna teks berwarna merah". Ketika pengguna telah mengetik rahasia, teks Entri berubah warna menjadi merah. Kode dikembalikan ke warna default jika pengguna kemudian mengedit teks agar berbeda dari rahasia. Contoh ini menunjukkan cara mengikat kontrol penutup dengan pemicu.


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

Contoh di bawah ini menunjukkan bagaimana pengembang dapat menggunakan pemicu untuk merespons peristiwa dan memperbarui nilai properti kontrol dengan menggunakan TriggerAction<T> kelas. Contohnya meminta pengguna untuk menjawab pertanyaan tentang warna teks, lalu memanggil ColorTriggerAction untuk mengubah teks menjadi merah saat pengguna mengetik "Warna teks berwarna merah". Pengembang harus mencatat bahwa, meskipun contoh ini tidak mengubah teks kembali ke warna default ketika pengguna terus mengedit string, pengembang juga dapat mengimplementasikan dan menentukan tindakan keluar untuk mendapatkan hasil tersebut.

Dengan kelas ColorTriggerAction di bawah ini didefinisikan dalam TriggerDemo namespace:

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

pengembang dapat menggunakan XAML di bawah ini untuk membuat halaman yang merespons string rahasia dengan mengubah warna Entry area teks menjadi merah.

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

Konstruktor

Trigger(Type)

Menginisialisasi instans baru Trigger .

Properti

BindingContext

Mendapatkan atau mengatur objek yang berisi properti yang akan ditargetkan oleh properti terikat milik ini BindableObject. Ini adalah properti yang dapat diikat.

(Diperoleh dari BindableObject)
Dispatcher

Mendapatkan dispatcher yang tersedia ketika objek yang dapat diikat ini dibuat, jika tidak, mencoba menemukan dispatcher terdekat yang tersedia (mungkin jendela/aplikasi).

(Diperoleh dari BindableObject)
EnterActions

Mendapatkan daftar TriggerAction objek yang akan dipanggil saat kondisi pemicu terpenuhi. Diabaikan untuk EventTrigger kelas .

(Diperoleh dari TriggerBase)
ExitActions

Mendapatkan daftar TriggerAction objek yang akan dipanggil setelah kondisi pemicu tidak lagi terpenuhi. Diabaikan untuk EventTrigger kelas .

(Diperoleh dari TriggerBase)
IsSealed

Mendapatkan nilai yang menunjukkan apakah pemicu disegel atau tidak.

(Diperoleh dari TriggerBase)
Property

Mendapatkan atau mengatur properti yang nilainya akan dibandingkan Value dengan untuk menentukan kapan harus memanggil setter.

Setters

Mendapatkan daftar Setter objek yang akan diterapkan ketika properti yang dinamai oleh Property menjadi sama dengan Value.

TargetType

Tipe objek tempat objek ini TriggerBase dapat dilampirkan.

(Diperoleh dari TriggerBase)
Value

Mendapatkan atau menetapkan nilai properti, yang dinamai Property oleh properti , yang akan menyebabkan setter diterapkan.

Metode

ApplyBindings()

Menerapkan semua pengikatan saat ini ke BindingContext.

(Diperoleh dari BindableObject)
ClearValue(BindableProperty)

Menghapus nilai apa pun yang sebelumnya ditetapkan untuk properti yang dapat diikat.

(Diperoleh dari BindableObject)
ClearValue(BindablePropertyKey)

Menghapus nilai apa pun yang sebelumnya ditetapkan untuk properti yang dapat diikat, yang diidentifikasi oleh kuncinya.

(Diperoleh dari BindableObject)
CoerceValue(BindableProperty)

Memaksakan nilai properti yang dapat diikat yang ditentukan. Ini dilakukan dengan memanggil BindableProperty.CoerceValueDelegate properti yang dapat diikat yang ditentukan.

(Diperoleh dari BindableObject)
CoerceValue(BindablePropertyKey)

Memaksakan nilai properti yang dapat diikat yang ditentukan. Ini dilakukan dengan memanggil BindableProperty.CoerceValueDelegate properti yang dapat diikat yang ditentukan.

(Diperoleh dari BindableObject)
GetValue(BindableProperty)

Mengembalikan nilai yang terkandung dalam properti yang dapat diikat yang diberikan.

(Diperoleh dari BindableObject)
IsSet(BindableProperty)

Menentukan apakah properti yang dapat diikat ada atau tidak dan memiliki kumpulan nilai.

(Diperoleh dari BindableObject)
OnBindingContextChanged()

Memunculkan kejadian BindingContextChanged.

(Diperoleh dari BindableObject)
OnPropertyChanged(String)

Memunculkan kejadian PropertyChanged.

(Diperoleh dari BindableObject)
OnPropertyChanging(String)

Memunculkan kejadian PropertyChanging.

(Diperoleh dari BindableObject)
RemoveBinding(BindableProperty)

Menghapus pengikatan yang ditetapkan sebelumnya dari properti yang dapat diikat.

(Diperoleh dari BindableObject)
SetBinding(BindableProperty, BindingBase)

Menetapkan pengikatan ke properti yang dapat diikat.

(Diperoleh dari BindableObject)
SetValue(BindableProperty, Object)

Mengatur nilai properti yang dapat diikat yang ditentukan.

(Diperoleh dari BindableObject)
SetValue(BindablePropertyKey, Object)

Mengatur nilai properti yang dapat diikat yang ditentukan.

(Diperoleh dari BindableObject)
UnapplyBindings()

Menghapus semua pengikatan saat ini dari konteks saat ini.

(Diperoleh dari BindableObject)

Acara

BindingContextChanged

Terjadi ketika nilai BindingContext properti berubah.

(Diperoleh dari BindableObject)
PropertyChanged

Terjadi saat nilai properti berubah.

(Diperoleh dari BindableObject)
PropertyChanging

Terjadi saat nilai properti berubah.

(Diperoleh dari BindableObject)

Implementasi Antarmuka Eksplisit

IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

Kelas yang mewakili kondisi properti dan tindakan yang dilakukan saat kondisi terpenuhi.

(Diperoleh dari BindableObject)
IValueProvider.ProvideValue(IServiceProvider)

Kelas yang mewakili kondisi properti dan tindakan yang dilakukan saat kondisi terpenuhi.

Metode Ekstensi

GetPropertyIfSet<T>(BindableObject, BindableProperty, T)

Kelas yang mewakili kondisi properti dan tindakan yang dilakukan saat kondisi terpenuhi.

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

Kelas yang mewakili kondisi properti dan tindakan yang dilakukan saat kondisi terpenuhi.

SetAppThemeColor(BindableObject, BindableProperty, Color, Color)

Kelas yang mewakili kondisi properti dan tindakan yang dilakukan saat kondisi terpenuhi.

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

Membuat dan menerapkan pengikatan ke properti.

Berlaku untuk

Lihat juga