protected CachedReadOnlyProperty <T> CreateCachedReadOnlyProperty <T>(Func <T> updateFunction, string propertyName, INotifyPropertyChanged notifyObj = null, params string[] dependencies) { var result = CachedReadOnlyProperty.Create(updateFunction, notifyObj, dependencies); SubscribeTo(result, propertyName); return(result); }
protected void SubscribeTo <PropType>(CachedReadOnlyProperty <PropType> relayProperty, string propertyName) { void relayProperty_PropertyChanged(object sender, PropertyChangedEventArgs e) { OnPropertyChanged(propertyName); } void relayProperty_PropertyChanging(object sender, PropertyChangingEventArgs e) { OnPropertyChanging(propertyName); } //TODO: Fix Potential Memory Leaks relayProperty.PropertyChanging += relayProperty_PropertyChanging; relayProperty.PropertyChanged += relayProperty_PropertyChanged; }