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); }