Exemple #1
0
        public void RegionGetsRemovedFromRegionManagerWhenRemovedFromScope()
        {
            var regionManager      = new MockRegionManager();
            var control            = new MockFrameworkElement();
            var regionScopeControl = new ContentControl();
            var accessor           = new MockRegionManagerAccessor
            {
                GetRegionManager = d => d == regionScopeControl ? regionManager : null
            };

            var region = new MockPresentationRegion()
            {
                Name = "myRegionName"
            };
            var behavior = new RegionManagerRegistrationBehavior()
            {
                RegionManagerAccessor = accessor,
                Region      = region,
                HostControl = control
            };

            behavior.Attach();

            regionScopeControl.Content = control;
            accessor.UpdateRegions();
            Assert.IsTrue(regionManager.MockRegionCollection.AddCalled);
            Assert.AreSame(region, regionManager.MockRegionCollection.AddArgument);

            regionScopeControl.Content = null;
            accessor.UpdateRegions();

            Assert.IsTrue(regionManager.MockRegionCollection.RemoveCalled);
        }
Exemple #2
0
        public void HostControlSetAfterAttachThrows()
        {
            var behavior     = new RegionManagerRegistrationBehavior();
            var hostControl1 = new MockDependencyObject();
            var hostControl2 = new MockDependencyObject();

            behavior.HostControl = hostControl1;
            behavior.Attach();
            behavior.HostControl = hostControl2;
        }
Exemple #3
0
 public void HostControlSetAfterAttachThrows()
 {
     var ex = Assert.Throws <InvalidOperationException>(() =>
     {
         var behavior         = new RegionManagerRegistrationBehavior();
         var hostControl1     = new MockDependencyObject();
         var hostControl2     = new MockDependencyObject();
         behavior.HostControl = hostControl1;
         behavior.Attach();
         behavior.HostControl = hostControl2;
     });
 }
Exemple #4
0
        public void DoesNotFailIfRegionManagerIsNotSet()
        {
            var control  = new ItemsControl();
            var accessor = new MockRegionManagerAccessor();

            var behavior = new RegionManagerRegistrationBehavior()
            {
                RegionManagerAccessor = accessor,
                Region = new MockPresentationRegion()
                {
                    Name = "myRegionWithoutManager"
                },
                HostControl = control
            };

            behavior.Attach();
        }
Exemple #5
0
        public void ShouldRegisterRegionIfRegionManagerIsSet()
        {
            var control       = new ItemsControl();
            var regionManager = new MockRegionManager();
            var accessor      = new MockRegionManagerAccessor
            {
                GetRegionManager = d => regionManager
            };
            var region = new MockPresentationRegion()
            {
                Name = "myRegionName"
            };
            var behavior = new RegionManagerRegistrationBehavior()
            {
                RegionManagerAccessor = accessor,
                Region      = region,
                HostControl = control
            };

            behavior.Attach();

            Assert.IsTrue(regionManager.MockRegionCollection.AddCalled);
            Assert.AreSame(region, regionManager.MockRegionCollection.AddArgument);
        }
        public static DependencyObject GetAttachedControl(this IRegion region)
        {
            RegionManagerRegistrationBehavior behavior = (RegionManagerRegistrationBehavior)region.Behaviors.First(b => b.Key == RegionManagerRegistrationBehavior.BehaviorKey).Value;

            return(behavior.HostControl);
        }