Поделиться через


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

Возвращает список объектов Setter, применяемых, когда свойство, имя которого указано в Property, становится равным Value.

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)

Создает привязку между свойством исходного объекта и свойством целевого объекта.

Применяется к

См. также раздел