Trigger 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表屬性條件以及符合條件時所執行動作的類別。
[Xamarin.Forms.ContentProperty("Setters")]
[Xamarin.Forms.Xaml.AcceptEmptyServiceProvider]
public sealed class Trigger : Xamarin.Forms.TriggerBase, Xamarin.Forms.Xaml.IValueProvider
type Trigger = class
inherit TriggerBase
interface 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
以將文字變成紅色。 開發人員應該注意,雖然此範例不會在用戶繼續編輯字串時將文字變更回預設色彩,但開發人員可以另外實作並指定結束動作來取得該結果。
在命名空間中 TriggerDemo
定義下列 ColorTriggerAction 類別:
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 比較,來判斷何時叫用 setter。 |
Setters | |
TargetType |
可附加這個 TriggerBase 物件的目標物件類型。 (繼承來源 TriggerBase) |
Value |
取得或設定屬性的值,由 Property 屬性命名,此值會導致套用 setter。 |
方法
事件
BindingContextChanged |
每當 BindingContext 屬性變更時引發。 (繼承來源 BindableObject) |
PropertyChanged |
在屬性變更時引發。 (繼承來源 BindableObject) |
PropertyChanging |
在屬性即將變更時引發。 (繼承來源 BindableObject) |
明確介面實作
IDynamicResourceHandler.SetDynamicResource(BindableProperty, String) |
供 Xamarin.Forms 平台內部使用。 (繼承來源 BindableObject) |
IValueProvider.ProvideValue(IServiceProvider) |
供 Xamarin.Forms 平台內部使用。 |
擴充方法
GetPropertyIfSet<T>(BindableObject, BindableProperty, T) |
代表屬性條件以及符合條件時所執行動作的類別。 |
SetAppThemeColor(BindableObject, BindableProperty, Color, Color) |
代表屬性條件以及符合條件時所執行動作的類別。 |
SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String) |
建立並將繫結套用至屬性。 |
SetBinding<TSource>(BindableObject, BindableProperty, Expression<Func<TSource,Object>>, BindingMode, IValueConverter, String) |
已淘汰.
從運算式建立及套用繫結。 |
SetOnAppTheme<T>(BindableObject, BindableProperty, T, T) |
代表屬性條件以及符合條件時所執行動作的類別。 |