Trigger クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
プロパティ条件と、その条件が満たされたときに実行されるアクションを表すクラス。
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 "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>
コンストラクター
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 プロパティによって指定されたプロパティの値を取得または設定します。 |
メソッド
イベント
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) |
ソース オブジェクトのプロパティとターゲット オブジェクトのプロパティの間にバインディングを作成します。 |
適用対象
こちらもご覧ください
.NET MAUI