次の方法で共有


Trigger クラス

定義

プロパティ条件と、その条件が満たされたときに実行されるアクションを表すクラス。

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
継承
属性
実装

注釈

Trigger クラスは、追加先のコントロールのプロパティの値を確認するのに適しています。 つまり、既定のバインディング コンテキストは、追加先のコントロールです。 親以外のコントロールにバインドするには、代わりに DataTrigger クラスを使用する必要があります。

次の XML の例では、"テキストの色は赤です" というシークレットを入力するようにユーザーに求めます。 ユーザーがシークレットを入力すると、エントリ テキストの色が赤に変わります。 ユーザーがテキストを編集してシークレットと異なる場合、コードは既定の色に戻されます。 この例では、外側のコントロールにトリガーを使用してバインドする方法を示します。


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

次の例は、開発者がトリガーを使用してイベントに応答し、 TriggerAction<T> クラスを使用してコントロール プロパティの値を更新する方法を示しています。 この例では、テキストの色に関する質問に回答するようユーザーに求め、ユーザーが 「テキストの色は赤です」と入力したときに、 ColorTriggerAction を呼び出してテキストを赤にします。 開発者は、この例では、ユーザーが文字列の編集を続けるときにテキストを既定の色に戻すことはありませんが、開発者は、その結果を取得するために終了アクションを追加で実装して指定できることに注意してください。

次の ColorTriggerAction クラスを TriggerDemo 名前空間で定義します。

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

開発者は、次の XAML を使用して、 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>

コンストラクター

Trigger(Type)

新しい Trigger インスタンスを初期化します。

プロパティ

BindingContext

この BindableObjectに属するバインドされたプロパティの対象となるプロパティを含むオブジェクトを取得または設定します。 これはバインド可能なプロパティです。

(継承元 BindableObject)
Dispatcher

このバインド可能なオブジェクトが作成されたときに使用可能だったディスパッチャーを取得します。それ以外の場合は、使用可能な最も近いディスパッチャー (おそらくウィンドウ/アプリ) を検索しようとします。

(継承元 BindableObject)
EnterActions

トリガー条件が満たされたときに呼び出される TriggerAction オブジェクトの一覧を取得します。 EventTrigger クラスの場合、無視されます。

(継承元 TriggerBase)
ExitActions

トリガー条件が満たされなくなった後に呼び出される TriggerAction オブジェクトの一覧を取得します。 EventTrigger クラスの場合、無視されます。

(継承元 TriggerBase)
IsSealed

トリガーが封印されているかどうかを示す値を取得します。

(継承元 TriggerBase)
Property

セッターを呼び出すタイミングを決定するために Value と比較される値を持つプロパティを取得または設定します。

Setters

Property で指定されたプロパティが Value と等しくなった場合に適用される Setter オブジェクトのリストを取得します。

TargetType

この TriggerBase オブジェクトを添付できるオブジェクトの型。

(継承元 TriggerBase)
Value

セッターを適用する、Property プロパティによって指定されたプロパティの値を取得または設定します。

メソッド

ApplyBindings()

現在のすべてのバインディングを BindingContextに適用します。

(継承元 BindableObject)
ClearValue(BindableProperty)

バインド可能なプロパティに対して以前に設定されたすべての値をクリアします。

(継承元 BindableObject)
ClearValue(BindablePropertyKey)

バインド可能なプロパティに対して以前に設定された値をクリアします。その値は、そのキーで識別されます。

(継承元 BindableObject)
CoerceValue(BindableProperty)

指定したバインド可能なプロパティの値を強制します。 これを行うには、指定したバインド可能なプロパティの BindableProperty.CoerceValueDelegate を呼び出します。

(継承元 BindableObject)
CoerceValue(BindablePropertyKey)

指定したバインド可能なプロパティの値を強制します。 これを行うには、指定したバインド可能なプロパティの BindableProperty.CoerceValueDelegate を呼び出します。

(継承元 BindableObject)
GetValue(BindableProperty)

指定されたバインド可能なプロパティに含まれる値を返します。

(継承元 BindableObject)
IsSet(BindableProperty)

バインド可能なプロパティが存在し、値が設定されているかどうかを判断します。

(継承元 BindableObject)
OnBindingContextChanged()

BindingContextChanged イベントを発生させます。

(継承元 BindableObject)
OnPropertyChanged(String)

PropertyChanged イベントを発生させます。

(継承元 BindableObject)
OnPropertyChanging(String)

PropertyChanging イベントを発生させます。

(継承元 BindableObject)
RemoveBinding(BindableProperty)

バインド可能なプロパティから、以前に設定したバインドを削除します。

(継承元 BindableObject)
SetBinding(BindableProperty, BindingBase)

バインド可能なプロパティにバインドを割り当てます。

(継承元 BindableObject)
SetValue(BindableProperty, Object)

指定したバインド可能なプロパティの値を設定します。

(継承元 BindableObject)
SetValue(BindablePropertyKey, Object)

指定したバインド可能なプロパティの値を設定します。

(継承元 BindableObject)
UnapplyBindings()

現在のコンテキストから現在のすべてのバインドを削除します。

(継承元 BindableObject)

イベント

BindingContextChanged

BindingContext プロパティの値が変化したときに発生します。

(継承元 BindableObject)
PropertyChanged

プロパティ値が変更されたときに発生します。

(継承元 BindableObject)
PropertyChanging

プロパティ値が変更されるときに発生します。

(継承元 BindableObject)

明示的なインターフェイスの実装

IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

プロパティ条件と、その条件が満たされたときに実行されるアクションを表すクラス。

(継承元 BindableObject)
IValueProvider.ProvideValue(IServiceProvider)

プロパティ条件と、その条件が満たされたときに実行されるアクションを表すクラス。

拡張メソッド

GetPropertyIfSet<T>(BindableObject, BindableProperty, T)

プロパティ条件と、その条件が満たされたときに実行されるアクションを表すクラス。

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

プロパティ条件と、その条件が満たされたときに実行されるアクションを表すクラス。

SetAppThemeColor(BindableObject, BindableProperty, Color, Color)

プロパティ条件と、その条件が満たされたときに実行されるアクションを表すクラス。

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

プロパティにバインドを作成し、適用します。

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

ソース オブジェクトのプロパティとターゲット オブジェクトのプロパティの間にバインディングを作成します。

適用対象

こちらもご覧ください