using System.Collections; using System.Collections.Generic; using UnityEngine; namespace TinaX.UIKit.DataBinding.Internal { /// /// 双向绑定 /// public class BidirectionalBinding { public delegate void SetValueDelegate(T value); public delegate void ValueChangedDelegate(T newValue); public SetValueDelegate OnSetValueDelegate; public ValueChangedDelegate OnValueChangedDelegate; public void SetValue(T value) { OnSetValueDelegate?.Invoke(value); } public void InvokeValueChanged(T newValue) { OnValueChangedDelegate?.Invoke(newValue); } public void OnValueChanged(ValueChangedDelegate callback) { this.OnValueChangedDelegate += callback; } public void OnSetValue(SetValueDelegate callback) { this.OnSetValueDelegate += callback; } public void ClearDelegates() { this.OnSetValueDelegate = null; this.OnValueChangedDelegate = null; } } }