Example #1
0
 internal void OnDeferredResourceInflated(DeferredResourceReference deferredResourceReference)
 {
     if (this.ReadInternalState(ResourceReferenceExpression.InternalState.IsListeningForInflated))
     {
         deferredResourceReference.RemoveInflatedListener(this);
         this.WriteInternalState(ResourceReferenceExpression.InternalState.IsListeningForInflated, false);
     }
     this.ListenForFreezableChanges(deferredResourceReference.Value);
 }
Example #2
0
        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);
        }