다음을 통해 공유


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

setter를 호출할 시기를 결정하기 위해 값이 Value와 비교할 속성을 가져오거나 설정합니다.

Setters

Property에서 명명된 속성이 Value와 같아질 때 적용할 Setter 개체의 목록을 가져옵니다.

TargetType

TriggerBase 개체를 연결할 수 있는 개체의 형식입니다.

(다음에서 상속됨 TriggerBase)
Value

Property 속성에 의해 명명된 속성 값을 가져오거나 설정합니다. 이 경우 setter가 적용되도록 합니다.

메서드

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)

원본 개체의 속성과 대상 개체의 속성 간에 바인딩을 만듭니다.

적용 대상

추가 정보