public object Bind(BindingContext context)
            {
				IValueProvider provider = new DictionaryValueProvider(context.Parameters);

				// Rewrite the provided context to ensure all the parameters 
				// provided by user is set correctly.
				BindingContext inner = new BindingContext(context, 
					context.ModelType, context.ModelName, provider, context.ModelState);

				ValueProviderResult value;
				if (inner.TryGetValue(out value))
					return value.Value;

				return null;
            }