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
- Наследование
- Атрибуты
- Реализации
Комментарии
Класс 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 "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 для определения того, когда должны вызываться методы задания. |
Setters |
Возвращает список объектов Setter, применяемых, когда свойство, имя которого указано в Property, становится равным Value. |
TargetType |
Тип объекта, к которому можно ли присоединить объект TriggerBase. (Унаследовано от TriggerBase) |
Value |
Возвращает или задает значение свойства, имя которого указано в свойстве Property и которое вызывает применение методов задания. |
Методы
ApplyBindings() |
Применяет привязки к BindingContext. (Унаследовано от BindableObject) |
ClearValue(BindableProperty) |
Очищает значение, заданное методом SetValue для |
ClearValue(BindablePropertyKey) |
Очищает значение, заданное методом SetValue для свойства, которое определяется параметром |
CoerceValue(BindableProperty) |
Класс, который представляет условие свойства и действие, выполняемое при соблюдении условия. (Унаследовано от BindableObject) |
CoerceValue(BindablePropertyKey) |
Класс, который представляет условие свойства и действие, выполняемое при соблюдении условия. (Унаследовано от BindableObject) |
GetValue(BindableProperty) |
Возвращает значение, которое содержится в BindableProperty. (Унаследовано от BindableObject) |
GetValues(BindableProperty, BindableProperty, BindableProperty) |
Устаревшие..
Для внутреннего использования платформой Xamarin.Forms. (Унаследовано от BindableObject) |
GetValues(BindableProperty, BindableProperty) |
Устаревшие..
Для внутреннего использования платформой Xamarin.Forms. (Унаследовано от BindableObject) |
IsSet(BindableProperty) |
Возвращает |
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) |
Класс, который представляет условие свойства и действие, выполняемое при соблюдении условия. |