다음을 통해 공유


DataTrigger 클래스

정의

바인딩된 값이 지정된 값과 일치할 때 setter를 활성화하는 트리거입니다.

public ref class DataTrigger sealed : Microsoft::Maui::Controls::TriggerBase
public ref class DataTrigger sealed : Microsoft::Maui::Controls::TriggerBase, Microsoft::Maui::Controls::Xaml::IValueProvider
[Microsoft.Maui.Controls.ContentProperty("Setters")]
public sealed class DataTrigger : Microsoft.Maui.Controls.TriggerBase
[Microsoft.Maui.Controls.ContentProperty("Setters")]
[Microsoft.Maui.Controls.Xaml.AcceptEmptyServiceProvider]
public sealed class DataTrigger : Microsoft.Maui.Controls.TriggerBase, Microsoft.Maui.Controls.Xaml.IValueProvider
[<Microsoft.Maui.Controls.ContentProperty("Setters")>]
type DataTrigger = class
    inherit TriggerBase
[<Microsoft.Maui.Controls.ContentProperty("Setters")>]
[<Microsoft.Maui.Controls.Xaml.AcceptEmptyServiceProvider>]
type DataTrigger = class
    inherit TriggerBase
    interface IValueProvider
Public NotInheritable Class DataTrigger
Inherits TriggerBase
Public NotInheritable Class DataTrigger
Inherits TriggerBase
Implements IValueProvider
상속
특성
구현

설명

클래스는 DataTrigger 추가된 컨트롤의 속성뿐만 아니라 다른 컨트롤의 값을 확인하는 데 적합합니다. 즉, 기본 바인딩 컨텍스트는 추가된 컨트롤입니다.

아래 XML 예제에서는 "텍스트 색이 녹색"인 비밀을 입력하라는 메시지를 표시합니다. 사용자가 "The"를 입력하면 항목 텍스트의 색이 빨간색으로 변경됩니다. 사용자가 비밀을 완료하면 레이블 텍스트가 녹색으로 바뀝니다. 사용자가 비밀을 편집하면 코드가 기본 색으로 돌아갑니다. 이 예제에서는 바깥쪽 컨트롤(항목에서 항목) 및 중재 컨트롤(레이블에서 항목)에 바인딩하는 방법을 보여 줍니다.

<?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="Can you tell me the secret?" VerticalOptions="Center" HorizontalOptions="Center">
<Label.Triggers>
<DataTrigger TargetType="Label"
                    Binding="{Binding Source={x:Reference checkEntry},
                                      Path=Text}"
                    Value="The text color is green">
<Setter Property="TextColor" Value="Color.Green" />
</DataTrigger>
</Label.Triggers>
</Label>
<Entry Placeholder="Type the secret here." x:Name="checkEntry" VerticalOptions="Center" HorizontalOptions="Center">
<Entry.Triggers>
<DataTrigger TargetType="Entry"
                    Binding="{Binding Text}"
                    Value="The">
<Setter Property="TextColor" Value="Red" />
</DataTrigger>
</Entry.Triggers>
</Entry>
</StackLayout>
</ContentPage>

생성자

Name Description
DataTrigger(Type)

DataTrigger 인스턴스를 초기화합니다.

속성

Name Description
Binding

트리거를 활성화할 시기를 결정하기 위해 Value 값을 비교할 바인딩을 가져오거나 설정합니다.

BindingContext

BindableObject속성에 속하는 바인딩된 속성의 대상이 되는 속성을 포함하는 개체를 가져오거나 설정합니다. 이는 바인딩 가능한 속성입니다.

(다음에서 상속됨 BindableObject)
Dispatcher

이 바인딩 가능한 개체를 만들 때 사용할 수 있었던 디스패처를 가져오고, 그렇지 않으면 사용 가능한 가장 가까운 디스패처(창/앱)를 찾으려고 시도합니다.

(다음에서 상속됨 BindableObject)
EnterActions

트리거 조건이 true가 될 때 호출할 개체의 TriggerAction 컬렉션을 가져옵니다.

(다음에서 상속됨 TriggerBase)
ExitActions

트리거 조건이 false가 될 때 호출할 개체의 TriggerAction 컬렉션을 가져옵니다.

(다음에서 상속됨 TriggerBase)
IsSealed

이 트리거가 요소에 연결되어 더 이상 수정할 수 없는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 TriggerBase)
Setters

트리거 조건이 충족되면 적용할 개체의 Setter 컬렉션을 가져옵니다.

TargetType

이 트리거를 연결할 수 있는 개체의 형식을 가져옵니다.

(다음에서 상속됨 TriggerBase)
Value

트리거를 활성화할 시기를 결정하기 위해 비교할 Binding 값을 가져오거나 설정합니다.

메서드

Name Description
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)

이벤트

Name Description
BindingContextChanged

BindingContext 속성 값이 변경되면 발생합니다.

(다음에서 상속됨 BindableObject)
PropertyChanged

속성 값이 변경되면 발생합니다.

(다음에서 상속됨 BindableObject)
PropertyChanging

속성 값이 변경되면 발생합니다.

(다음에서 상속됨 BindableObject)

명시적 인터페이스 구현

Name Description
IDynamicResourceHandler.SetDynamicResource(BindableProperty, String)

바인딩된 값이 지정된 값과 일치할 때 setter를 활성화하는 트리거입니다.

(다음에서 상속됨 BindableObject)
IValueProvider.ProvideValue(IServiceProvider)

바인딩된 값이 지정된 값과 일치할 때 setter를 활성화하는 트리거입니다.

확장명 메서드

Name Description
GetPropertyIfSet<T>(BindableObject, BindableProperty, T)

바인딩된 값이 지정된 값과 일치할 때 setter를 활성화하는 트리거입니다.

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

바인딩된 값이 지정된 값과 일치할 때 setter를 활성화하는 트리거입니다.

SetAppThemeColor(BindableObject, BindableProperty, Color, Color)

바인딩된 값이 지정된 값과 일치할 때 setter를 활성화하는 트리거입니다.

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

속성에 바인딩을 만들고 적용합니다.

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

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

적용 대상