private void ValidateDeferredResourceReferences(object resourceKey) { if (this.deferredResourceReferences != null) { IEnumerator enumerator = this.deferredResourceReferences.GetEnumerator(); while (enumerator.MoveNext()) { DeferredResourceReference current = enumerator.Current as DeferredResourceReference; if (current == null || (resourceKey != null && !object.Equals(resourceKey, current.Key))) { continue; } current.GetValue(BaseValueSourceInternal.Unknown); } } }
internal object FetchResource(object resourceKey, bool allowDeferredResourceReference, bool mustReturnDeferredResourceReference, out bool canCache) { DeferredResourceReference deferredThemeResourceReference; if (!allowDeferredResourceReference || !mustReturnDeferredResourceReference || !this.Contains(resourceKey)) { return(this.GetValue(resourceKey, out canCache)); } canCache = false; deferredThemeResourceReference = new DeferredResourceReference(this, resourceKey); if (this.deferredResourceReferences == null) { this.deferredResourceReferences = new List <WeakReference>(); } this.deferredResourceReferences.Add(new WeakReference(deferredThemeResourceReference)); return(deferredThemeResourceReference); }
// Token: 0x06001E7F RID: 7807 RVA: 0x00091907 File Offset: 0x0008FB07 internal StaticResourceHolder(object resourceKey, DeferredResourceReference prefetchedValue) : base(resourceKey) { this._prefetchedValue = prefetchedValue; }
internal object FetchResource(object resourceKey, bool allowDeferredResourceReference, bool mustReturnDeferredResourceReference, out bool canCache) { DeferredResourceReference deferredThemeResourceReference; if (!allowDeferredResourceReference || !mustReturnDeferredResourceReference || !this.Contains(resourceKey)) { return this.GetValue(resourceKey, out canCache); } canCache = false; deferredThemeResourceReference = new DeferredResourceReference(this, resourceKey); if (this.deferredResourceReferences == null) { this.deferredResourceReferences = new List<WeakReference>(); } this.deferredResourceReferences.Add(new WeakReference(deferredThemeResourceReference)); return deferredThemeResourceReference; }
internal void OnDeferredResourceInflated(DeferredResourceReference deferredResourceReference) { if (this.ReadInternalState(ResourceReferenceExpression.InternalState.IsListeningForInflated)) { deferredResourceReference.RemoveInflatedListener(this); this.WriteInternalState(ResourceReferenceExpression.InternalState.IsListeningForInflated, false); } this.ListenForFreezableChanges(deferredResourceReference.Value); }