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);
        }
예제 #4
0
        /// <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();
        }