CustomBinding
класс в UnityEngine.UIElements
Наследуется от:UIElements.Binding
Выполнено в:UnityEngine.UIElementsModule
Описание
Base class for general purpose binding extensibility.
В следующем примере создается пользовательская привязка, которая отображает текущее время. Вы можете привязать ее к текстовому полю метки, чтобы создать часы.
using System; using Unity.Properties; using UnityEngine.UIElements;
[UxmlObject] public partial class CurrentTimeBinding : CustomBinding { [UxmlAttribute] public string timeFormat = "HH:mm:ss";
public CurrentTimeBinding() { updateTrigger = BindingUpdateTrigger.EveryUpdate; }
protected override BindingResult Update(in BindingContext context) { var timeNow = DateTime.Now.ToString(timeFormat); var element = context.targetElement; if (ConverterGroups.TrySetValueGlobal(ref element, context.bindingId, timeNow, out var errorCode)) return new BindingResult(BindingStatus.Success);
// Error handling var bindingTypename = TypeUtility.GetTypeDisplayName(typeof(CurrentTimeBinding)); var bindingId = $"{TypeUtility.GetTypeDisplayName(element.GetType())}.{context.bindingId}";
return errorCode switch { VisitReturnCode.InvalidPath => new BindingResult(BindingStatus.Failure, $"{bindingTypename}: Binding id `{bindingId}` is either invalid or contains a `null` value."), VisitReturnCode.InvalidCast => new BindingResult(BindingStatus.Failure, $"{bindingTypename}: Invalid conversion from `string` for binding id `{bindingId}`"), VisitReturnCode.AccessViolation => new BindingResult(BindingStatus.Failure, $"{bindingTypename}: Trying set value for binding id `{bindingId}`, but it is read-only."), _ => throw new ArgumentOutOfRangeException() }; } }
Открытые методы
| Метод | Описание |
|---|---|
| Update | Вызывается, когда система привязки обновляет привязку. |
Унаследованные члены 3
Свойства
| Свойство | Описание |
|---|---|
| isDirty | Если установлено значение true, экземпляр привязки обновляется во время следующего цикла обновления. Если установлено значение false, экземпляр привязки обновляется только при обнаружении изменения. |
| updateTrigger | Если установлено значение BindingUpdateTrigger.EveryUpdate, экземпляр привязки обновляется при каждом обновлении, независимо от версии источника данных. |
Открытые методы
| Метод | Описание |
|---|---|
| MarkDirty | Уведомляет систему привязки об обработке этой привязки. |
| OnActivated | Вызывается, когда привязка становится активной для конкретного VisualElement. |
| OnDataSourceChanged | Вызывается при изменении разрешенного источника данных привязки. |
| OnDeactivated | Вызывается, когда привязка больше не активна для конкретного VisualElement. |
Статические методы
| Метод | Описание |
|---|---|
| GetGlobalLogLevel | Получает глобальный уровень журнала для всех сбоев привязки. |
| GetPanelLogLevel | Получает уровень журнала для сбоев привязки на панели. |
| ResetPanelLogLevel | Сброс уровня журнала для сбоев привязки на панели для использования глобального параметра. |
| SetGlobalLogLevel | Задает уровень журнала для всех сбоев привязки. |
| SetPanelLogLevel | Задает уровень журнала для сбоев привязки на панели. |