예제 #1
0
        public void When_DefaultValueProvider_Multiple_Registered_Overwrite()
        {
            bool GetDefaultValue(DependencyProperty property, out object value)
            {
                if (property == DefaultValueProviderSample.TestProperty)
                {
                    value = 3;
                    return(true);
                }

                value = null;
                return(false);
            }

            bool GetDefaultValue2(DependencyProperty property, out object value)
            {
                if (property == DefaultValueProviderSample.TestProperty)
                {
                    value = 17;
                    return(true);
                }

                value = null;
                return(false);
            }

            var test = new DefaultValueProviderSample();

            test.RegisterDefaultValueProvider(GetDefaultValue);
            test.RegisterDefaultValueProvider(GetDefaultValue2);

            var value = test.GetPrecedenceSpecificValue(DefaultValueProviderSample.TestProperty, DependencyPropertyValuePrecedences.DefaultValue);

            Assert.AreEqual(17, value);
        }
예제 #2
0
        public void When_DefaultValueProvider_Registered_Other_Property_Not_Affected()
        {
            var test = new DefaultValueProviderSample();

            var value = test.GetPrecedenceSpecificValue(DefaultValueProviderSample.OtherProperty, DependencyPropertyValuePrecedences.DefaultValue);

            Assert.AreEqual(0, value);
        }
예제 #3
0
        public void When_DefaultValueProvider_Registered_Provides_Value()
        {
            var test = new DefaultValueProviderSample();

            var value = test.GetPrecedenceSpecificValue(DefaultValueProviderSample.TestProperty, DependencyPropertyValuePrecedences.DefaultValue);

            Assert.AreEqual(3, value);
        }
예제 #4
0
        public void When_DefaultValueProvider_Registered_Other_Property_Not_Affected()
        {
            bool GetDefaultValue(DependencyProperty property, out object value)
            {
                if (property == DefaultValueProviderSample.TestProperty)
                {
                    value = 3;
                    return(true);
                }

                value = 42;                 // Set arbitrary to verify false has effect
                return(false);
            }

            var test = new DefaultValueProviderSample();

            test.RegisterDefaultValueProvider(GetDefaultValue);

            var value = test.GetPrecedenceSpecificValue(DefaultValueProviderSample.OtherProperty, DependencyPropertyValuePrecedences.DefaultValue);

            Assert.AreEqual(0, value);
        }