Beispiel #1
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="PropertyValueObserverOnNotifyProperyChanged{TResult}" /> class.
 /// </summary>
 /// <param name="propertyExpression">The property expression.</param>
 /// <param name="isCached">if set to <c>true</c> [is cached].</param>
 /// <param name="safetyMode">The safety mode.</param>
 /// <param name="observerFlag">The observer flag.</param>
 internal PropertyValueObserverOnNotifyProperyChanged(
     [NotNull] Expression <Func <TResult> > propertyExpression,
     bool isCached,
     LazyThreadSafetyMode safetyMode,
     PropertyObserverFlag observerFlag)
     : base(propertyExpression, observerFlag)
 {
     (this.action, this.getter) = this.CreateNullableValueCachedGetter(
         this.CreateNullableValueGetter(Getter(propertyExpression, this.Tree)),
         isCached,
         safetyMode,
         () => this.OnPropertyChanged(nameof(this.Value)));
 }
Beispiel #2
0
 /// <summary>
 ///     Initializes a new instance of the
 ///     <see cref="PropertyReferenceObserverOnNotifyProperyChanged{TParameter1, TResult}" /> class.
 /// </summary>
 /// <param name="parameter1">The parameter1.</param>
 /// <param name="propertyExpression">The property expression.</param>
 /// <param name="taskScheduler">The task scheduler.</param>
 /// <param name="isCached">if set to <c>true</c> [is cached].</param>
 /// <param name="safetyMode">The safety mode.</param>
 /// <param name="observerFlag">The observer flag.</param>
 /// <exception cref="System.ArgumentNullException">propertyExpression is null.</exception>
 internal PropertyReferenceObserverOnNotifyProperyChanged(
     [NotNull] TParameter1 parameter1,
     [NotNull] Expression <Func <TParameter1, TResult> > propertyExpression,
     TaskScheduler taskScheduler,
     bool isCached,
     LazyThreadSafetyMode safetyMode,
     PropertyObserverFlag observerFlag)
     : base(parameter1, propertyExpression, observerFlag)
 {
     (this.action, this.getter) = this.CreateNullableReferenceCachedGetter(
         this.CreateNullableReferenceGetter(Getter(propertyExpression, this.Tree, parameter1), taskScheduler),
         isCached,
         safetyMode,
         () => this.OnPropertyChanged(nameof(this.Value)));
 }
Beispiel #3
0
 /// <summary>
 ///     Initializes a new instance of the
 ///     <see cref="PropertyObserverOnNotifyProperyChangedWithFallback{TParameter1, TResult}" /> class.
 /// </summary>
 /// <param name="parameter1">The parameter1.</param>
 /// <param name="propertyExpression">The property expression.</param>
 /// <param name="fallback">The fallback.</param>
 /// <param name="isCached">if set to <c>true</c> [is cached].</param>
 /// <param name="safetyMode">The safety mode.</param>
 /// <param name="observerFlag">The observer flag.</param>
 internal PropertyObserverOnNotifyProperyChangedWithFallback(
     [NotNull] TParameter1 parameter1,
     [NotNull] Expression <Func <TParameter1, TResult> > propertyExpression,
     TResult fallback,
     bool isCached,
     LazyThreadSafetyMode safetyMode,
     PropertyObserverFlag observerFlag)
     : base(parameter1, propertyExpression, observerFlag)
 {
     (this.action, this.getter) = this.CreateNullableCachedGetter(
         this.CreateNullableGetter(Getter(propertyExpression, this.Tree, fallback, parameter1)),
         isCached,
         safetyMode,
         () => this.OnPropertyChanged(nameof(this.Value)));
 }
 /// <summary>
 ///     Initializes a new instance of the <see cref="PropertyValueObserverOnNotifyProperyChanged{TParameter1, TResult}" />
 ///     class.
 /// </summary>
 /// <param name="parameter1">The parameter1.</param>
 /// <param name="propertyExpression">The property expression.</param>
 /// <param name="synchronizationContext">The synchronization context.</param>
 /// <param name="isCached">if set to <c>true</c> [is cached].</param>
 /// <param name="safetyMode">The safety mode.</param>
 /// <param name="observerFlag">The observer flag.</param>
 internal PropertyValueObserverOnNotifyProperyChanged(
     [NotNull] TParameter1 parameter1,
     [NotNull] Expression <Func <TParameter1, TResult> > propertyExpression,
     SynchronizationContext synchronizationContext,
     bool isCached,
     LazyThreadSafetyMode safetyMode,
     PropertyObserverFlag observerFlag)
     : base(parameter1, propertyExpression, observerFlag)
 {
     (this.action, this.getter) = this.CreateNullableValueCachedGetter(
         this.CreateNullableValueGetter(
             Getter(propertyExpression, this.Tree, parameter1),
             synchronizationContext),
         isCached,
         safetyMode,
         () => this.OnPropertyChanged(nameof(this.Value)));
 }