UTKProperyItem 수정 중
This commit is contained in:
@@ -54,6 +54,8 @@ namespace UVC.UIToolkit
|
||||
protected bool _isVisible = true;
|
||||
protected bool _showLabel = true;
|
||||
protected string? _tooltipText;
|
||||
|
||||
private IUTKPropertyItem? _boundItemBase;
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
@@ -285,10 +287,19 @@ namespace UVC.UIToolkit
|
||||
private void SubscribeToThemeChanges()
|
||||
{
|
||||
UTKThemeManager.Instance.OnThemeChanged += OnThemeChanged;
|
||||
RegisterCallback<DetachFromPanelEvent>(_ =>
|
||||
{
|
||||
UTKThemeManager.Instance.OnThemeChanged -= OnThemeChanged;
|
||||
});
|
||||
RegisterCallback<AttachToPanelEvent>(OnAttachToPanel);
|
||||
RegisterCallback<DetachFromPanelEvent>(OnDetachFromPanel);
|
||||
}
|
||||
|
||||
private void OnAttachToPanel(AttachToPanelEvent evt)
|
||||
{
|
||||
UTKThemeManager.Instance.OnThemeChanged -= OnThemeChanged;
|
||||
UTKThemeManager.Instance.OnThemeChanged += OnThemeChanged;
|
||||
}
|
||||
|
||||
private void OnDetachFromPanel(DetachFromPanelEvent evt)
|
||||
{
|
||||
UTKThemeManager.Instance.OnThemeChanged -= OnThemeChanged;
|
||||
}
|
||||
|
||||
private void OnThemeChanged(UTKTheme theme)
|
||||
@@ -390,6 +401,34 @@ namespace UVC.UIToolkit
|
||||
TooltipText = item.Tooltip;
|
||||
ShowLabel = item.ShowLabel;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 상태 변경 이벤트를 구독합니다. 하위 View의 Bind에서 호출하세요.
|
||||
/// </summary>
|
||||
protected void BindBase(IUTKPropertyItem item)
|
||||
{
|
||||
UnbindBase();
|
||||
_boundItemBase = item;
|
||||
_boundItemBase.OnStateChanged += OnItemStateChanged;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 상태 변경 이벤트 구독을 해제합니다. 하위 View의 Unbind에서 호출하세요.
|
||||
/// </summary>
|
||||
protected void UnbindBase()
|
||||
{
|
||||
if (_boundItemBase != null)
|
||||
{
|
||||
_boundItemBase.OnStateChanged -= OnItemStateChanged;
|
||||
_boundItemBase = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnItemStateChanged(IUTKPropertyItem item)
|
||||
{
|
||||
IsReadOnly = item.IsReadOnly;
|
||||
ShowLabel = item.ShowLabel;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region IDisposable
|
||||
@@ -406,7 +445,10 @@ namespace UVC.UIToolkit
|
||||
|
||||
if (disposing)
|
||||
{
|
||||
UnbindBase();
|
||||
UTKThemeManager.Instance.OnThemeChanged -= OnThemeChanged;
|
||||
UnregisterCallback<AttachToPanelEvent>(OnAttachToPanel);
|
||||
UnregisterCallback<DetachFromPanelEvent>(OnDetachFromPanel);
|
||||
this.ClearTooltip();
|
||||
|
||||
_labelElement = null;
|
||||
|
||||
Reference in New Issue
Block a user