public void InternalCollectionDependencyTest()
        {
            var changed_properties = new List<string>();
            var obj = new InternalCollectionDependencyObject();
            obj.PropertyChanged += (sender, args) => changed_properties.Add(args.PropertyName);

            obj.Prop1.Add(42);

            Assert.AreEqual(1, changed_properties.Count, "1 property changed event expected");
            Assert.IsTrue(changed_properties.Contains("Prop2"), "Prop2 property changed event expected");
            changed_properties.Clear();

            obj.Prop1 = new ObservableCollection<int>();
            obj.Prop1.Add(23);

            Assert.AreEqual(2, changed_properties.Count, "2 property changed events expected");
            Assert.IsTrue(changed_properties.Contains("Prop1"), "Prop1 property changed event expected");
            Assert.IsTrue(changed_properties.Contains("Prop2"), "Prop2 property changed event expected");
        }
        public void InternalCollectionDependencyTest()
        {
            var changed_properties = new List <string>();
            var obj = new InternalCollectionDependencyObject();

            obj.PropertyChanged += (sender, args) => changed_properties.Add(args.PropertyName);

            obj.Prop1.Add(42);

            Assert.AreEqual(1, changed_properties.Count, "1 property changed event expected");
            Assert.IsTrue(changed_properties.Contains("Prop2"), "Prop2 property changed event expected");
            changed_properties.Clear();

            obj.Prop1 = new ObservableCollection <int>();
            obj.Prop1.Add(23);

            Assert.AreEqual(2, changed_properties.Count, "2 property changed events expected");
            Assert.IsTrue(changed_properties.Contains("Prop1"), "Prop1 property changed event expected");
            Assert.IsTrue(changed_properties.Contains("Prop2"), "Prop2 property changed event expected");
        }