Esempio n. 1
0
        public void When_IsAutoPropertyInheritance_Multi_Disabled()
        {
            var SUT    = new MyObject();
            var inner  = new SubObject();
            var inner2 = new SubObject();

            SUT.SubObject = inner;
            inner.Inner   = inner2;

            Assert.IsNull(inner.LastDataContextChangedValue);

            SUT.DataContext = 42;

            Assert.IsNull(inner.LastDataContextChangedValue);
            Assert.AreEqual("", inner.MyStringProperty);
            Assert.AreEqual("", inner2.MyStringProperty);

            inner2.SetBinding(
                SubObject.MyStringPropertyProperty,
                new Binding()
            {
            }
                );

            Assert.AreEqual(42, inner.LastDataContextChangedValue);
            Assert.AreEqual(42, inner2.LastDataContextChangedValue);
            Assert.AreEqual("", inner.MyStringProperty);
            Assert.AreEqual("42", inner2.MyStringProperty);
        }
Esempio n. 2
0
        public void When_IsAutoPropertyInheritance_Disabled_TemplatedParent_Binding()
        {
            var SUT   = new MyObject();
            var inner = new SubObject();

            SUT.SubObject = inner;

            Assert.IsNull(inner.LastDataContextChangedValue);

            var parent = new Grid()
            {
                Tag = 42
            };

            SUT.TemplatedParent = parent;

            Assert.IsNull(inner.LastTemplatedParentChangedValue);

            inner.SetBinding(
                SubObject.DataContextProperty,
                new Binding()
            {
                Path           = "Tag",
                RelativeSource = RelativeSource.TemplatedParent
            }
                );

            Assert.AreEqual(parent, inner.LastTemplatedParentChangedValue);
            Assert.AreEqual(42, inner.DataContext);
        }
Esempio n. 3
0
        public void When_PropertyReset_Then_Parent_removed()
        {
            var SUT   = new MyObject();
            var inner = new SubObject();

            SUT.SubObject = inner;

            Assert.AreEqual(SUT, inner.GetParent());

            SUT.SubObject = null;
            Assert.IsNull(inner.GetParent());
        }
Esempio n. 4
0
        public void When_IsAutoPropertyInheritance_Disabled_TemplatedParent()
        {
            var SUT   = new MyObject();
            var inner = new SubObject();

            SUT.SubObject = inner;

            Assert.IsNull(inner.LastDataContextChangedValue);

            var parent = new Grid();

            SUT.TemplatedParent = parent;

            Assert.IsNull(inner.LastTemplatedParentChangedValue);

            Assert.AreEqual(parent, inner.TemplatedParent);
            Assert.AreEqual(parent, inner.LastTemplatedParentChangedValue);
        }
Esempio n. 5
0
        public void When_IsAutoPropertyInheritance_Multi_DataContext_Read_Top()
        {
            var SUT    = new MyObject();
            var inner  = new SubObject();
            var inner2 = new SubObject();

            SUT.SubObject = inner;
            inner.Inner   = inner2;

            Assert.IsNull(inner.LastDataContextChangedValue);

            SUT.DataContext = 42;

            Assert.IsNull(inner.LastDataContextChangedValue);
            Assert.IsNull(inner2.LastDataContextChangedValue);

            // The order is important
            Assert.AreEqual(42, inner2.DataContext);
            Assert.AreEqual(42, inner.DataContext);

            Assert.AreEqual(42, inner.LastDataContextChangedValue);
            Assert.AreEqual(42, inner2.LastDataContextChangedValue);
        }