/// <summary>
 /// Marks the follow-up expressions
 /// so that changes applied to any subproperty
 /// of the last child property should be NOT tracked as well.
 /// </summary>
 /// <returns>The same instance of the <see cref="ExpressionPreconfiguration"/>
 /// type, which holds preconfiguration options</returns>
 public ExpressionPreconfiguration DoNotTrackLastChild()
 {
     this.Options = MarkerMethods.DoNotTrackLastChild(this.Options);
     return(this);
 }
 /// <summary>
 /// Marks a collection object
 /// that all contained items implementing INPC should
 /// be tracked as well.
 /// </summary>
 /// <returns>The same instance of the <see cref="ExpressionPreconfiguration"/>
 /// type, which holds preconfiguration options</returns>
 public ExpressionPreconfiguration TrackItems <TItem>(params Expression <Func <TItem, object> >[] propertiesToTrack)
 {
     this.Options = MarkerMethods.TrackItems(this.Options, propertiesToTrack);
     return(this);
 }
 /// <summary>
 /// Marks all fields in follow-up expression as trackable,
 /// given that they implement the
 /// <see cref="INotifyPropertyChanged"/> interface.
 /// </summary>
 /// <returns>The same instance of the <see cref="ExpressionPreconfiguration"/>
 /// type, which holds preconfiguration options</returns>
 public ExpressionPreconfiguration TrackFields()
 {
     this.Options = MarkerMethods.TrackFields(this.Options);
     return(this);
 }
 /// <summary>
 /// Marks a collection object
 /// that all contained items implementing INPC should
 /// be tracked as well.
 /// </summary>
 /// <returns>The same instance of the <see cref="ExpressionPreconfiguration"/>
 /// type, which holds preconfiguration options</returns>
 public ExpressionPreconfiguration TrackItems()
 {
     this.Options = MarkerMethods.TrackItems(this.Options, PropertyTrackingInfo.TrackAll);
     return(this);
 }