public void Dispose() { if (RefCount-- == 0) { CachedProperty p = Holder._first; while (p != null) { if (p.Update()) { Holder.NotifyOfPropertyChange(p._p.Name); } p = p._next; } Holder._delay = null; } }
protected void AddProperty <THolder, TProperty>(THolder holder, Expression <Func <THolder, TProperty> > property) { _first = new CachedProperty <TProperty>(holder, CK.Reflection.ReflectionHelper.GetPropertyInfo(holder, property), _first); }
protected CachedProperty(object o, PropertyInfo p, CachedProperty next) { _o = o; _p = p; _next = next; }