Trigger Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 "The text"?"
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. |