/// <summary> /// 设置值 /// </summary> /// <typeparam name="T">值类型</typeparam> /// <param name="property">依赖属性</param> /// <param name="storage">值存储</param> /// <param name="value">值</param> public void SetValue <T>(DependencyProperty <T> property, IDependencyValueStorage storage, T value) { storage.AddOrUpdate(this, property, o => new LocalEffectiveValue <T>(value), (k, o) => { ((LocalEffectiveValue <T>)o).SetValue(value); return(o); }); }
public Task SetValue <T>(DependencyProperty <T> property, IDependencyValueStorage storage, T value) { return(storage.AddOrUpdate(this, property, o => new LocalEffectiveValue <T>(value), async(k, o) => { await((LocalEffectiveValue <T>)o).SetValue(value); return o; })); }
ClearValue <T>(DependencyProperty <T> property, IDependencyValueStorage storage) { IEffectiveValue <T> eValue; #if ECS_SERVER return (#endif storage.TryRemove(this, property, out eValue)); }
public bool TryGetValue <T>(DependencyProperty <T> property, IDependencyValueStorage storage, out T value) { IEffectiveValue <T> eValue; if (storage.TryGetValue(this, property, out eValue)) { value = eValue.Value; return(true); } value = default(T); return(false); }
public bool TryGetValue <T>(DependencyProperty <T> property, IDependencyValueStorage storage, out BindingBase value) { IEffectiveValue <T> eValue; if (storage.TryGetValue(this, property, out eValue)) { value = ((BindingEffectiveValue <T>)eValue).Binding; return(true); } value = null; return(false); }
private bool TryGetCurrentEffectiveValueExcept(DependencyProperty key, IDependencyValueStorage except, out IEffectiveValue value) { foreach (var storage in _storages.Values) { if (storage == except) { continue; } if (storage.TryGetCurrentEffectiveValue(key, out value)) { return(true); } } value = null; return(false); }
public void ClearValue <T>(DependencyProperty <T> property, IDependencyValueStorage storage) { IEffectiveValue <T> eValue; storage.TryRemove(this, property, out eValue); }
public Task ClearValue <T>(DependencyProperty <T> property, IDependencyValueStorage storage) { IEffectiveValue <T> eValue; return(storage.TryRemove(this, property, out eValue)); }
private void UpdateStorage(DependencyValueStorageKey key, IDependencyValueStorage old, IDependencyValueStorage value) { var dps = value.Keys.Union(old.Keys).ToList(); UpdateStorage(dps, () => _storages[key] = value); }
private void RemoveStorage(DependencyValueStorageKey key, IDependencyValueStorage storage) { var dps = storage.Keys.ToList(); UpdateStorage(dps, () => _storages.Remove(key)); }
private void AddStorage(DependencyValueStorageKey key, IDependencyValueStorage storage) { var dps = storage.Keys.ToList(); UpdateStorage(dps, () => _storages.Add(key, storage)); }
public void SetValue <T>(DependencyObject d, DependencyProperty <T> property, IDependencyValueStorage storage, BindingBase value) { storage.AddOrUpdate(this, property, o => new BindingEffectiveValue <T>(d, value), (k, o) => new BindingEffectiveValue <T>(d, value)); }