Beispiel #1
0
        /// <summary>
        /// Enables a transposer to the passed <paramref name="cache"/>. If there is already a transposer enabled then the old one will be removed and <see cref="ITransposer.OnUntie(object, object)"/>
        /// will be called.
        /// </summary>
        /// <param name="cache">The cache for enabling a transposer.</param>
        /// <param name="view">The view for the transposer.</param>
        /// <param name="transposer">The transposer which should be enabled.</param>
        private static void EnableTransposer(Dictionary <object, TransposerEntry> cache, object view, ITransposer transposer)
        {
            if (cache.TryGetValue(view, out TransposerEntry entry))
            {
                object viewModel = entry.ViewModel;
                transposer = entry.Transposer;
                transposer?.OnUntie(view, viewModel);
                cache.Remove(view);
            }

            if (transposer == null)
            {
                return;
            }

            object context = GetContextFromView(view);

            transposer.OnTie(view, context);

            cache[view] = new TransposerEntry(transposer, context);
        }
Beispiel #2
0
 public TransposerEntry(ITransposer transposer, object viewModel)
 {
     Transposer = transposer;
     ViewModel  = viewModel;
 }