| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- namespace Caliburn.Micro.Core {
 
-     using System;
 
-     using System.Collections.Generic;
 
-     /// <summary>
 
-     /// An implementation of <see cref="IConductor"/> that holds on to and activates only one item at a time.
 
-     /// </summary>
 
-     public partial class Conductor<T> : ConductorBaseWithActiveItem<T> where T: class {
 
-         /// <summary>
 
-         /// Activates the specified item.
 
-         /// </summary>
 
-         /// <param name="item">The item to activate.</param>
 
-         public override void ActivateItem(T item) {
 
-             if(item != null && item.Equals(ActiveItem)) {
 
-                 if (IsActive) {
 
-                     ScreenExtensions.TryActivate(item);
 
-                     OnActivationProcessed(item, true);
 
-                 }
 
-                 return;
 
-             }
 
-             CloseStrategy.Execute(new[] { ActiveItem }, (canClose, items) => {
 
-                 if(canClose)
 
-                     ChangeActiveItem(item, true);
 
-                 else OnActivationProcessed(item, false);
 
-             });
 
-         }
 
-         /// <summary>
 
-         /// Deactivates the specified item.
 
-         /// </summary>
 
-         /// <param name="item">The item to close.</param>
 
-         /// <param name="close">Indicates whether or not to close the item after deactivating it.</param>
 
-         public override void DeactivateItem(T item, bool close) {
 
-             if (item == null || !item.Equals(ActiveItem)) {
 
-                 return;
 
-             }
 
-             CloseStrategy.Execute(new[] { ActiveItem }, (canClose, items) => {
 
-                 if(canClose)
 
-                     ChangeActiveItem(default(T), close);
 
-             });
 
-         }
 
-         /// <summary>
 
-         /// Called to check whether or not this instance can close.
 
-         /// </summary>
 
-         /// <param name="callback">The implementor calls this action with the result of the close check.</param>
 
-         public override void CanClose(Action<bool> callback) {
 
-             CloseStrategy.Execute(new[] { ActiveItem }, (canClose, items) => callback(canClose));
 
-         }
 
-         /// <summary>
 
-         /// Called when activating.
 
-         /// </summary>
 
-         protected override void OnActivate() {
 
-             ScreenExtensions.TryActivate(ActiveItem);
 
-         }
 
-         /// <summary>
 
-         /// Called when deactivating.
 
-         /// </summary>
 
-         /// <param name="close">Inidicates whether this instance will be closed.</param>
 
-         protected override void OnDeactivate(bool close) {
 
-             ScreenExtensions.TryDeactivate(ActiveItem, close);
 
-         }
 
-         /// <summary>
 
-         /// Gets the children.
 
-         /// </summary>
 
-         /// <returns>The collection of children.</returns>
 
-         public override IEnumerable<T> GetChildren() {
 
-             return new[] { ActiveItem };
 
-         }
 
-     }
 
- }
 
 
  |