예제 #1
0
        public void FreezableResourceContainerTest()
        {
            int    resourcesChangedCount = 0;
            object resourceValue;

            Freezable freezable = new Freezable();

            freezable.ResourcesChanged += (sender, e) => resourcesChangedCount++;

            FrameworkElement element = new FrameworkElement();

            element.Resources = new ResourceDictionary();
            element.Resources.Add("key1", "value1");

            Assert.IsFalse(freezable.TryGetResource("key1", out resourceValue));

            freezable.TrySetContextParent(element);
            Assert.AreEqual(1, resourcesChangedCount);
            Assert.IsTrue(freezable.TryGetResource("key1", out resourceValue));
            Assert.AreEqual("value1", resourceValue);

            element.Resources.Add("key2", "value2");
            Assert.AreEqual(2, resourcesChangedCount);
            Assert.IsTrue(freezable.TryGetResource("key2", out resourceValue));
            Assert.AreEqual("value2", resourceValue);
        }