public void DoesNotThrowWhenAddingNonActiveAwareObjects() { var collection = new ObservableCollection<object>(); var behavior = new CollectionActiveAwareBehavior(collection); behavior.Attach(); collection.Add(new object()); }
public void DetachStopsListeningForChanges() { var collection = new ObservableCollection<object>(); var behavior = new CollectionActiveAwareBehavior(collection); behavior.Attach(); behavior.Detach(); ActiveAwareObject activeAwareObject = new ActiveAwareObject(); collection.Add(activeAwareObject); Assert.IsFalse(activeAwareObject.IsActive); }
public void SetsIsActivePropertyOnIActiveAwareObjects() { var collection = new ObservableCollection<object>(); var behavior = new CollectionActiveAwareBehavior(collection); behavior.Attach(); ActiveAwareObject activeAwareObject = new ActiveAwareObject(); Assert.IsFalse(activeAwareObject.IsActive); collection.Add(activeAwareObject); Assert.IsTrue(activeAwareObject.IsActive); collection.Remove(activeAwareObject); Assert.IsFalse(activeAwareObject.IsActive); }
/// <summary> /// Template method to attach new behaviors. /// </summary> /// <param name="region">The region being used.</param> /// <param name="regionTarget">The object to adapt.</param> /// <remarks>By default, this implementation attaches the <see cref="CollectionActiveAwareBehavior"/>.</remarks> protected virtual void AttachBehaviors(IRegion region, T regionTarget) { CollectionActiveAwareBehavior activeAwareBehavior = new CollectionActiveAwareBehavior(region.ActiveViews); activeAwareBehavior.Attach(); }