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