UTKInput Validation 기능 추가

This commit is contained in:
logonkhi
2026-02-12 18:04:38 +09:00
parent df6d3e3b5a
commit 93e1423525
54 changed files with 2900 additions and 188 deletions

View File

@@ -124,7 +124,7 @@ namespace UVC.UIToolkit
#region Events
/// <summary>값 변경 이벤트 (object 타입)</summary>
public event Action<IUTKPropertyItem, object?, object?>? OnValueChanged;
public event Action<IUTKPropertyItem, object?, object?, bool>? OnValueChanged;
/// <summary>값 변경 이벤트 (제네릭 타입)</summary>
public event Action<IUTKPropertyItem<T>, T, T>? OnTypedValueChanged;
@@ -159,35 +159,34 @@ namespace UVC.UIToolkit
{
if (default(T) == null)
{
if (notifyChangeEvent)
{
Value = default!;
}
else
if (!Equals(_value, value))
{
var oldValue = _value;
_value = default!;
NotifyValueChanged(oldValue, default!, notifyChangeEvent);
}
}
}
else if (value is T typedValue)
{
if (notifyChangeEvent)
{
Value = typedValue;
}
else
if (!Equals(_value, typedValue))
{
var oldValue = _value;
_value = typedValue;
NotifyValueChanged(oldValue, typedValue, notifyChangeEvent);
}
}
else
{
try
{
if (notifyChangeEvent)
Value = (T)Convert.ChangeType(value, typeof(T));
else
_value = (T)Convert.ChangeType(value, typeof(T));
var v = (T)Convert.ChangeType(value, typeof(T));
if (!Equals(_value, v))
{
var oldValue = _value;
_value = v;
NotifyValueChanged(oldValue, v, notifyChangeEvent);
}
}
catch (Exception ex)
{
@@ -199,10 +198,10 @@ namespace UVC.UIToolkit
#region Protected Methods
/// <summary>값 변경을 알립니다.</summary>
protected void NotifyValueChanged(T oldValue, T newValue)
protected void NotifyValueChanged(T oldValue, T newValue, bool notifyChangeEvent = false)
{
OnTypedValueChanged?.Invoke(this, oldValue, newValue);
OnValueChanged?.Invoke(this, oldValue, newValue);
OnValueChanged?.Invoke(this, oldValue, newValue, notifyChangeEvent);
}
#endregion