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 "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) |
Очищает любое значение, заданное ранее для привязываемого свойства. (Унаследовано от 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) |
Создает привязку между свойством исходного объекта и свойством целевого объекта. |