Trigger Класс

Определение

Класс, который представляет условие свойства и действие, выполняемое при соблюдении условия.

[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
Наследование
System.Object
Trigger
Атрибуты
Реализации

Комментарии

Класс 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)

Очищает значение, заданное методом SetValue для property.

(Унаследовано от BindableObject)
ClearValue(BindablePropertyKey)

Очищает значение, заданное методом SetValue для свойства, которое определяется параметром propertyKey.

(Унаследовано от BindableObject)
CoerceValue(BindableProperty)

Класс, который представляет условие свойства и действие, выполняемое при соблюдении условия.

(Унаследовано от BindableObject)
CoerceValue(BindablePropertyKey)

Класс, который представляет условие свойства и действие, выполняемое при соблюдении условия.

(Унаследовано от BindableObject)
GetValue(BindableProperty)

Возвращает значение, которое содержится в BindableProperty.

(Унаследовано от BindableObject)
GetValues(BindableProperty, BindableProperty)
Устаревшие..

Для внутреннего использования платформой Xamarin.Forms.

(Унаследовано от BindableObject)
GetValues(BindableProperty, BindableProperty, BindableProperty)
Устаревшие..

Для внутреннего использования платформой Xamarin.Forms.

(Унаследовано от BindableObject)
IsSet(BindableProperty)

Возвращает true, если целевое свойство существует и задано.

(Унаследовано от BindableObject)
OnBindingContextChanged()

Переопределите этот метод для выполнения действия при изменении BindingContext.

(Унаследовано от BindableObject)
OnPropertyChanged(String)

Этот метод можно вызвать из дочернего класса для уведомления об изменении свойства.

(Унаследовано от BindableObject)
OnPropertyChanging(String)

Этот метод можно вызвать из дочернего класса для уведомления о том, что свойство будет изменено.

(Унаследовано от BindableObject)
RemoveBinding(BindableProperty)

Удаляет заданную ранее привязку.

(Унаследовано от BindableObject)
SetBinding(BindableProperty, BindingBase)

Присваивает привязку свойству.

(Унаследовано от BindableObject)
SetValue(BindableProperty, Object)

Задает значение указанного свойства.

(Унаследовано от BindableObject)
SetValue(BindablePropertyKey, Object)

Задает значение propertyKey.

(Унаследовано от BindableObject)
SetValueCore(BindableProperty, Object, SetValueFlags)

Для внутреннего использования платформой Xamarin.Forms.

(Унаследовано от BindableObject)
UnapplyBindings()

Отменяет применение всех заданных ранее привязок.

(Унаследовано от BindableObject)

События

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)

Класс, который представляет условие свойства и действие, выполняемое при соблюдении условия.

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

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