Trigger Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Třída, která představuje podmínku vlastnosti a akci, která se provádí při splnění podmínky.
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
- Dědičnost
- Atributy
- Implementuje
Poznámky
Třída Trigger je vhodná pro kontrolu hodnot jakékoli vlastnosti ovládacího prvku, ke kterému byla přidána. To znamená, že výchozí kontext vazby je ovládací prvek, ke kterému byl přidán. K vytvoření vazby na ovládací prvky jiné než nadřazené by vývojáři měli místo toho použít DataTrigger třídu.
Následující příklad XML vyzve uživatele k zadání tajného kódu, což je "Barva textu je červená". Když uživatel zadá tajný kód, změní se text položky na červenou. Kód se vrátí zpět na výchozí barvu, pokud uživatel pak upraví text tak, aby se liší od tajného kódu. Tento příklad ukazuje, jak vytvořit vazbu na nadřazený ovládací prvek s triggerem.
<?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>
Následující příklad ukazuje, jak můžou vývojáři pomocí triggeru reagovat na události a aktualizovat hodnotu vlastnosti ovládacího prvku pomocí TriggerAction<T> tříd. V příkladu se uživateli zobrazí výzva, aby odpověděl na otázku týkající se barvy textu, a když uživatel zadá "Barva textu je červená", zavolá ColorTriggerAction
, aby text zčervená. Vývojáři by měli mít na paměti, že zatímco tento příklad nezmění text zpět na výchozí barvu, když uživatel bude pokračovat v úpravě řetězce, vývojář může navíc implementovat a zadat výstupní akci pro získání tohoto výsledku.
S ColorTriggerAction třídy níže definované v TriggerDemo
oboru názvů:
public class ColorTriggerAction : TriggerAction<Entry>
{
protected override void Invoke(Entry sender)
{
sender.TextColor = Color.Red;
}
}
Vývojář může pomocí kódu XAML níže vytvořit stránku, která reaguje na tajný řetězec změnou barvy Entry textové oblasti na červenou.
<?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>
Konstruktory
Trigger(Type) |
Inicializuje novou Trigger instanci. |
Vlastnosti
BindingContext |
Získá nebo nastaví objekt obsahující vlastnosti, které budou cílem vázané vlastnosti, které patří do tohoto BindableObject. Toto je vlastnost s možností vazby. (Zděděno od BindableObject) |
Dispatcher |
Získá dispečer, který byl k dispozici při vytvoření tohoto objektu bindable, jinak se pokusí najít nejbližší dostupný dispečer (pravděpodobně okno/aplikace). (Zděděno od BindableObject) |
EnterActions |
Získá seznam TriggerAction objektů, které budou vyvolány při splnění podmínky triggeru. Ignorováno pro EventTrigger třídu. (Zděděno od TriggerBase) |
ExitActions |
Získá seznam TriggerAction objektů, které budou vyvolány po splnění podmínky triggeru. Ignorováno pro EventTrigger třídu. (Zděděno od TriggerBase) |
IsSealed |
Získá hodnotu, která označuje, zda je aktivační událost zapečetěna. (Zděděno od TriggerBase) |
Property |
Získá nebo nastaví vlastnost, jejíž hodnota bude porovnána Value s určením, kdy vyvolat setters. |
Setters |
Získá seznam Setter objektů, které budou použity, když vlastnost, která je pojmenována Property se rovná Value. |
TargetType |
Typ objektu, ke kterému lze tento TriggerBase objekt připojit. (Zděděno od TriggerBase) |
Value |
Získá nebo nastaví hodnotu vlastnosti pojmenované Property vlastností, která způsobí použití setters. |
Metody
ApplyBindings() |
Použije všechny aktuální vazby na BindingContext. (Zděděno od BindableObject) |
ClearValue(BindableProperty) |
Vymaže libovolnou hodnotu, která byla dříve nastavena pro vlastnost bindable. (Zděděno od BindableObject) |
ClearValue(BindablePropertyKey) |
Vymaže libovolnou hodnotu, která byla dříve nastavena pro vlastnost bindable identifikovanou jeho klíčem. (Zděděno od BindableObject) |
CoerceValue(BindableProperty) |
Převede hodnotu zadané vlastnosti bindable. To se provádí vyvoláním BindableProperty.CoerceValueDelegate zadané bindable vlastnosti. (Zděděno od BindableObject) |
CoerceValue(BindablePropertyKey) |
Převede hodnotu zadané vlastnosti bindable. To se provádí vyvoláním BindableProperty.CoerceValueDelegate zadané bindable vlastnosti. (Zděděno od BindableObject) |
GetValue(BindableProperty) |
Vrátí hodnotu obsaženou v dané vlastnosti bindable. (Zděděno od BindableObject) |
IsSet(BindableProperty) |
Určuje, zda existuje vlastnost bindable a má nastavenou hodnotu. (Zděděno od BindableObject) |
OnBindingContextChanged() |
BindingContextChanged Vyvolá událost. (Zděděno od BindableObject) |
OnPropertyChanged(String) |
PropertyChanged Vyvolá událost. (Zděděno od BindableObject) |
OnPropertyChanging(String) |
PropertyChanging Vyvolá událost. (Zděděno od BindableObject) |
RemoveBinding(BindableProperty) |
Odebere dříve nastavenou vazbu z vlastnosti bindable. (Zděděno od BindableObject) |
SetBinding(BindableProperty, BindingBase) |
Přiřadí vazbu k vlastnosti s možností vazby. (Zděděno od BindableObject) |
SetValue(BindableProperty, Object) |
Nastaví hodnotu zadané vlastnosti bindable. (Zděděno od BindableObject) |
SetValue(BindablePropertyKey, Object) |
Nastaví hodnotu zadané vlastnosti bindable. (Zděděno od BindableObject) |
UnapplyBindings() |
Odebere všechny aktuální vazby z aktuálního kontextu. (Zděděno od BindableObject) |
Událost
BindingContextChanged |
Nastane, když se změní hodnota BindingContext vlastnosti. (Zděděno od BindableObject) |
PropertyChanged |
Nastane, když se změní hodnota vlastnosti. (Zděděno od BindableObject) |
PropertyChanging |
Nastane při změně hodnoty vlastnosti. (Zděděno od BindableObject) |
Explicitní implementace rozhraní
IDynamicResourceHandler.SetDynamicResource(BindableProperty, String) |
Třída, která představuje podmínku vlastnosti a akci, která se provádí při splnění podmínky. (Zděděno od BindableObject) |
IValueProvider.ProvideValue(IServiceProvider) |
Třída, která představuje podmínku vlastnosti a akci, která se provádí při splnění podmínky. |
Metody rozšíření
GetPropertyIfSet<T>(BindableObject, BindableProperty, T) |
Třída, která představuje podmínku vlastnosti a akci, která se provádí při splnění podmínky. |
SetAppTheme<T>(BindableObject, BindableProperty, T, T) |
Třída, která představuje podmínku vlastnosti a akci, která se provádí při splnění podmínky. |
SetAppThemeColor(BindableObject, BindableProperty, Color, Color) |
Třída, která představuje podmínku vlastnosti a akci, která se provádí při splnění podmínky. |
SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String) |
Vytvoří a použije vazbu na vlastnost. |
SetBinding<TSource,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object) |
Vytvoří vazbu mezi vlastností zdrojového objektu a vlastností cílového objektu. |