Arguments for a conversion.
        /// <summary>
        /// Converts the specified value.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <param name="arguments">The arguments.</param>
        /// <returns>
        /// The converted value.
        /// </returns>
        public object Convert(object value, ConversionArguments arguments)
        {
            if (value == DBNull.Value)
            {
                return null;
            }

            var urlValue = value as SPFieldUrlValue;
            if (urlValue == null)
            {
                var stringValue = value as string;
                if (!string.IsNullOrEmpty(stringValue))
                {
                    urlValue = new SPFieldUrlValue(stringValue);
                }
            }

            return urlValue != null ? urlValue.Description : null;
        }
        /// <summary>
        /// Converts the specified value.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <param name="arguments">The arguments.</param>
        /// <returns>
        /// The converted value.
        /// </returns>
        public object Convert(object value, ConversionArguments arguments)
        {
            if (value == DBNull.Value)
            {
                return null;
            }

            if (value == null)
            {
                return null;
            }

            DateTime dateTimeValue;
            if (DateTime.TryParse(value.ToString(), out dateTimeValue))
            {
                return dateTimeValue;
            }

            return null;
        }
        /// <summary>
        /// Converts the specified value.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <param name="arguments">The arguments.</param>
        /// <returns>
        /// The converted value.
        /// </returns>
        public object Convert(object value, ConversionArguments arguments)
        {
            if (value == DBNull.Value || value == null)
            {
                return null;
            }

            if (arguments.PropertyType == typeof(bool))
            {
                // If the value comes from a datarow, it may in 0/1 format.
                // Otherwise, just let the straight conversion take place.
                if (value.ToString() == "0")
                {
                    return false;
                }
                else if (value.ToString() == "1")
                {
                    return true;
                }
            }

            // Okay now we really do a straight conversion
            return value;
        }
 /// <summary>
 /// Converts the specified value back.
 /// </summary>
 /// <param name="value">The value.</param>
 /// <param name="arguments">The arguments.</param>
 /// <returns>
 /// The converted value.
 /// </returns>
 /// <exception cref="System.NotImplementedException">URL field to description converter should only be used in a read-only binding.</exception>
 public object ConvertBack(object value, ConversionArguments arguments)
 {
     throw new NotImplementedException("URL field to description converter should only be used in a read-only binding.");
 }
 /// <summary>
 /// Converts the specified value back.
 /// </summary>
 /// <param name="value">The value.</param>
 /// <param name="arguments">The arguments.</param>
 /// <returns>
 /// The converted value.
 /// </returns>
 public object ConvertBack(object value, ConversionArguments arguments)
 {
     return null;
 }