Files
EnglewoodLAB/Assets/Scripts/UVC/UIToolkit/Property/Views/IUTKPropertyItemView.cs

51 lines
1.5 KiB
C#

#nullable enable
using System;
namespace UVC.UIToolkit
{
/// <summary>
/// PropertyItem View의 기본 인터페이스입니다.
/// Data 클래스와 바인딩하여 사용하거나, 단독으로 사용할 수 있습니다.
/// </summary>
public interface IUTKPropertyItemView : IDisposable
{
/// <summary>라벨 텍스트</summary>
string Label { get; set; }
/// <summary>읽기 전용 여부</summary>
bool IsReadOnly { get; set; }
/// <summary>표시 여부</summary>
bool IsVisible { get; set; }
/// <summary>툴팁 텍스트</summary>
string? TooltipText { get; set; }
/// <summary>Data 클래스와 바인딩</summary>
void Bind(IUTKPropertyItem data);
/// <summary>Data 클래스와 바인딩 해제</summary>
void Unbind();
/// <summary>UI 상태 갱신</summary>
void RefreshUI();
}
/// <summary>
/// 제네릭 버전의 PropertyItem View 인터페이스입니다.
/// 타입 안전한 값 접근을 제공합니다.
/// </summary>
/// <typeparam name="T">값의 타입</typeparam>
public interface IUTKPropertyItemView<T> : IUTKPropertyItemView
{
/// <summary>현재 값</summary>
T Value { get; set; }
/// <summary>값 변경 이벤트 (View에서 직접 변경 시)</summary>
event Action<T>? OnValueChanged;
/// <summary>타입 안전한 Data 클래스와 바인딩</summary>
void Bind(IUTKPropertyItem<T> data);
}
}