namespace Caliburn.Micro.Core {
    using System;
    /// 
    /// Denotes a class which is aware of its view(s).
    /// 
    public interface IViewAware {
        /// 
        /// Attaches a view to this instance.
        /// 
        /// The view.
        /// The context in which the view appears.
        void AttachView(object view, object context = null);
        /// 
        /// Gets a view previously attached to this instance.
        /// 
        /// The context denoting which view to retrieve.
        /// The view.
        object GetView(object context = null);
        /// 
        /// Raised when a view is attached.
        /// 
        event EventHandler ViewAttached;
    }
}