47 lines
1.0 KiB
C#
47 lines
1.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using UnityEditor;
|
|
|
|
namespace uMVVM.Sources.Infrastructure
|
|
{
|
|
public class BindableProperty<T>
|
|
{
|
|
public delegate void ValueChangedHandler(T oldValue, T newValue);
|
|
|
|
public ValueChangedHandler OnValueChanged;
|
|
|
|
private T _value;
|
|
public T Value
|
|
{
|
|
get
|
|
{
|
|
return _value;
|
|
}
|
|
set
|
|
{
|
|
if (!Equals(_value, value))
|
|
{
|
|
T old = _value;
|
|
_value = value;
|
|
ValueChanged(old, _value);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void ValueChanged(T oldValue, T newValue)
|
|
{
|
|
if (OnValueChanged != null)
|
|
{
|
|
OnValueChanged(oldValue, newValue);
|
|
}
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return (Value != null ? Value.ToString() : "null");
|
|
}
|
|
}
|
|
}
|