internal DependObject(ImpromptuViewModel parent, string property, FireOnPropertyChangedDependencyAware onChange)
 {
     _parent       = parent;
     _property     = property;
     _onChange     = onChange;
     _dependency   = new Dependency(_parent, _property);
     _unDependency = new UnDependency(_parent, _property);
     _getProprty   = new CacheableInvocation(InvocationKind.Get, _property);
     _setProprty   = new CacheableInvocation(InvocationKind.Set, _property);
 }
 internal PropertyDepend(ImpromptuViewModel parent, FireOnPropertyChangedDependencyAware onChange)
 {
     _parent   = parent;
     _onChange = onChange;
 }
 internal SetupTrampoline(ImpromptuViewModel viewModel)
 {
     _viewModel           = viewModel;
     _onChangedTrampoline = new FireOnPropertyChangedDependencyAware(_viewModel);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FireOnPropertyChangedDependencyAware"/> class.
 /// </summary>
 /// <param name="parent">The parent.</param>
 internal FireOnPropertyChangedDependencyAware(ImpromptuViewModel parent)
     : base(parent)
 {
     _parent = parent;
 }
 internal PropertyDepends(ImpromptuViewModel parent)
 {
     _parent = parent;
 }
 internal LinkFinal(ImpromptuViewModel parent, string property, string dependency)
 {
     _parent     = parent;
     _property   = property;
     _dependency = dependency;
 }
 internal DependsOn(ImpromptuViewModel parent, string property)
 {
     _parent   = parent;
     _property = property;
 }
 internal UnDependency(ImpromptuViewModel parent, string property)
     : base(parent, property)
 {
 }
 internal DependencyBase(ImpromptuViewModel parent, string property)
 {
     _parent       = parent;
     _property     = property;
     _dependencies = new List <string>();
 }