51 lines
1.5 KiB
C#
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);
|
|
}
|
|
}
|