| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | 
							- #if XFORMS
 
- namespace Caliburn.Micro.Core.Xamarin.Forms
 
- #else
 
- namespace Caliburn.Micro
 
- #endif
 
- {
 
-     using System;
 
-     using System.Collections.Generic;
 
-     using System.Reflection;
 
- #if WinRT
 
-     using Windows.UI.Xaml;
 
- #elif XFORMS
 
-     using global::Xamarin.Forms;
 
-     using DependencyObject = global::Xamarin.Forms.BindableObject;
 
-     using DependencyProperty = global::Xamarin.Forms.BindableProperty;
 
-     using FrameworkElement = global::Xamarin.Forms.VisualElement;
 
- #else
 
-     using System.Windows;
 
- #endif
 
-     /// <summary>
 
-     /// The context used during the execution of an Action or its guard.
 
-     /// </summary>
 
-     public class ActionExecutionContext : IDisposable {
 
-         private WeakReference message;
 
-         private WeakReference source;
 
-         private WeakReference target;
 
-         private WeakReference view;
 
-         private Dictionary<string, object> values;
 
-         /// <summary>
 
-         /// Determines whether the action can execute.
 
-         /// </summary>
 
-         /// <remarks>Returns true if the action can execute, false otherwise.</remarks>
 
-         public Func<bool> CanExecute;
 
-         /// <summary>
 
-         /// Any event arguments associated with the action's invocation.
 
-         /// </summary>
 
-         public object EventArgs;
 
-         /// <summary>
 
-         /// The actual method info to be invoked.
 
-         /// </summary>
 
-         public MethodInfo Method;
 
-         /// <summary>
 
-         /// The message being executed.
 
-         /// </summary>
 
-         public ActionMessage Message {
 
-             get { return message == null ? null : message.Target as ActionMessage; }
 
-             set { message = new WeakReference(value); }
 
-         }
 
-         /// <summary>
 
-         /// The source from which the message originates.
 
-         /// </summary>
 
-         public FrameworkElement Source {
 
-             get { return source == null ? null : source.Target as FrameworkElement; }
 
-             set { source = new WeakReference(value); }
 
-         }
 
-         /// <summary>
 
-         /// The instance on which the action is invoked.
 
-         /// </summary>
 
-         public object Target {
 
-             get { return target == null ? null : target.Target; }
 
-             set { target = new WeakReference(value); }
 
-         }
 
-         /// <summary>
 
-         /// The view associated with the target.
 
-         /// </summary>
 
-         public DependencyObject View {
 
-             get { return view == null ? null : view.Target as DependencyObject; }
 
-             set { view = new WeakReference(value); }
 
-         }
 
-         /// <summary>
 
-         /// Gets or sets additional data needed to invoke the action.
 
-         /// </summary>
 
-         /// <param name="key">The data key.</param>
 
-         /// <returns>Custom data associated with the context.</returns>
 
-         public object this[string key] {
 
-             get {
 
-                 if (values == null)
 
-                     values = new Dictionary<string, object>();
 
-                 object result;
 
-                 values.TryGetValue(key, out result);
 
-                 return result;
 
-             }
 
-             set {
 
-                 if (values == null)
 
-                     values = new Dictionary<string, object>();
 
-                 values[key] = value;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
 
-         /// </summary>
 
-         public void Dispose() {
 
-             Disposing(this, System.EventArgs.Empty);
 
-         }
 
-         /// <summary>
 
-         /// Called when the execution context is disposed
 
-         /// </summary>
 
-         public event EventHandler Disposing = delegate { };
 
-     }
 
- }
 
 
  |