private void OnTrackedItemChanged(IPropertyTracker tracker, object sender, PropertyChangedEventArgs e, SourceAndValue <INotifyPropertyChanged, TProperty> sourceAndValue) { this.OnTrackedItemChanged( ((PropertyPathTracker <TItem, TProperty>)tracker.PathTracker).Source, sender, e, sourceAndValue); }
IPropertyTracker IPropertyPathTracker.GetNext(IPropertyTracker tracker) { for (var i = 0; i < this.parts.Count - 1; i++) { var candidate = this.parts[i]; if (ReferenceEquals(candidate, tracker)) { return(this.parts[i + 1]); } } return(null); }
internal PropertyPathTracker(TSource source, IReadOnlyList <INotifyingGetter> path) { var items = new IPropertyTracker[path.Count]; for (var i = 0; i < path.Count; i++) { items[i] = path[i].CreateTracker(this); } this.parts = items; items[0].Source = source; this.Refresh(); this.Last.TrackedPropertyChanged += this.OnTrackedPropertyChanged; }
internal TtlTypeBuilder(IPropertyTracker propertyTracker) { _currentOptions.PropertyTracker = propertyTracker; }
internal CombinedCachingKeyBuilder(IPropertyTracker <T> propertyTracker) { _propertyTracker = propertyTracker; }
private void OnTrackedPropertyChanged(IPropertyTracker tracker, object sender, PropertyChangedEventArgs e, SourceAndValue <INotifyPropertyChanged, TValue> sourceandvalue) { this.TrackedPropertyChanged?.Invoke(tracker, sender, e, sourceandvalue); }