public static ICommandBuilder ObserveAll(
     this ICommandBuilder command,
     INotifyPropertyChanged caller)
 {
     command.AddObserver(new CommandAllObserver(caller));
     return(command);
 }
 public static ICommandBuilder Observe <TObserveable, TReturn>(
     this ICommandBuilder command,
     TObserveable caller,
     Expression <Func <TReturn> > expression) where TObserveable : INotifyPropertyChanged
 {
     command.AddObserver(new CommandPropertyObserver <TReturn>(caller, expression));
     return(command);
 }