public static void SetOriginalFromFinalIfLessEqual(IProperty listener, IProperty @object) { @object.AddInvalidationListener(() => { int finalValue = @object.FinalValue; if (listener.FinalValue <= finalValue) listener.OriginalValue = finalValue; }); }
public static void SetRestrictor(this IProperty child, int min, IProperty max) { child.Restrictor = val => { if (val < min) return min; int finalValue = max.FinalValue; if (val > finalValue) return finalValue; return val; }; EventListener el_invalid = () => child.Invalidate(); EventListener el_remove = null; el_remove = () => { max.RemoveInvalidationListener(el_invalid); child.RestrictorChangedListener -= el_remove; }; child.RestrictorChangedListener += el_remove; max.AddInvalidationListener(el_invalid); }
public static void SetOriginalFromFinal(IProperty listener, IProperty @object) { @object.AddInvalidationListener(() => listener.OriginalValue = @object.FinalValue); }