public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            // obtain the 'bound' property via the Row string indexer
            string index         = parameter as string;
            object propertyValue = null;
            Record record        = value as Record;

            if (record != null)
            {
                propertyValue = record[index];
            }
            else
            {
                FieldSetter propertyValueChange = value as FieldSetter;
                if (propertyValueChange != null)
                {
                    propertyValue = propertyValueChange.Value;
                }
            }

            // convert if required
            if (_valueConverter != null)
            {
                propertyValue = _valueConverter.Convert(propertyValue, targetType, parameter, culture);
            }

            return(propertyValue);
        }