internal void OnDeferredResourceInflated(DeferredResourceReference deferredResourceReference) { if (this.ReadInternalState(ResourceReferenceExpression.InternalState.IsListeningForInflated)) { deferredResourceReference.RemoveInflatedListener(this); this.WriteInternalState(ResourceReferenceExpression.InternalState.IsListeningForInflated, false); } this.ListenForFreezableChanges(deferredResourceReference.Value); }
private void InvalidateCacheValue() { object value = this.cachedResourceValue; DeferredResourceReference deferredResourceReference = this.cachedResourceValue as DeferredResourceReference; if (deferredResourceReference != null) { if (deferredResourceReference.IsInflated) { value = deferredResourceReference.Value; } else if (this.ReadInternalState(ResourceReferenceExpression.InternalState.IsListeningForInflated)) { deferredResourceReference.RemoveInflatedListener(this); this.WriteInternalState(ResourceReferenceExpression.InternalState.IsListeningForInflated, false); } deferredResourceReference.RemoveFromDictionary(); } this.StopListeningForFreezableChanges(value); this.cachedResourceValue = null; this.WriteInternalState(ResourceReferenceExpression.InternalState.HasCachedResourceValue, false); }