System.ComponentModel.NullableConverter.GetStandardValues C# (CSharp) Method

GetStandardValues() public method

public GetStandardValues ( ITypeDescriptorContext context ) : StandardValuesCollection
context ITypeDescriptorContext
return StandardValuesCollection
        public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) {
            if (simpleTypeConverter != null) {
                StandardValuesCollection values = simpleTypeConverter.GetStandardValues(context);
                if (GetStandardValuesSupported(context) && values != null) {
                    // Create a set of standard values around nullable instances.  
                    object[] wrappedValues = new object[values.Count + 1];
                    int idx = 0;

                    wrappedValues[idx++] = null;
                    foreach(object value in values) {
                        wrappedValues[idx++] = value;
                    }

                    return new StandardValuesCollection(wrappedValues);
                }
            }

            return base.GetStandardValues(context);
        }        

Usage Example

Example #1
0
		public void GetStandardValues ()
		{
			NullableConverter converter = new NullableConverter (typeof(MyType?));
			Assert.IsTrue (converter.GetStandardValuesSupported (null), "#1");
			TypeConverter.StandardValuesCollection values = converter.GetStandardValues (null);
			// MyTypeConverter returns an empty values collection, but
			// NullableConverter adds a null value to the set.
			Assert.AreEqual (1, values.Count, "#2");
			Assert.AreEqual (null, values[0], "#3");
		}