示例#1
0
        /// <summary>
        /// Registers a standalone animation (one that does not correspond to a scheduled value change). It is expected to be initialized
        /// </summary>
        /// <typeparam name="TValueType"></typeparam>
        /// <param name="acc"></param>
        /// <param name="delayed"></param>
        public void RegisterAnimation <TValueType>(Accessor <TValueType> acc, DelayedDataChange <TValueType> delayed)
        {
            var lastRelevantDelayedDataChange = _delayedChanges.LastOrDefault(delayedChange => delayedChange.GetAccessor().Equals(acc));

            _delayedChanges.Add(delayed);
            if (lastRelevantDelayedDataChange == null)
            {
                delayed.Start();
            }
        }
示例#2
0
 public void ConfirmDelayedDataCompletion <TValueType>(DelayedDataChange <TValueType> ddc)
 {
     Debug.Assert(_delayedChanges.Contains(ddc), "Confirming DelayedDataChange that was never scheduled.");
     Debug.Assert(EqualityComparer <TValueType> .Default.Equals(ddc.NewValue, ddc.Accessor.GetValue(Element)), "DelayedDataChange was confirmed, but value was not changed correctly");
     _delayedChanges.Remove(ddc);
 }