MonoMobile.Views.MemberData.Convert C# (CSharp) Method

Convert() public method

public Convert ( object value, Type targetType, IValueConverter valueConverter ) : object
value object
targetType System.Type
valueConverter IValueConverter
return object
		public object Convert(object value, Type targetType, IValueConverter valueConverter)
		{
			object result = value;
			
			if (valueConverter != null)
			{
				var parameter = GetConverterParameter();
				result = valueConverter.Convert(value, targetType, parameter, CultureInfo.CurrentUICulture);
			}
				
			if (targetType != null)
			{
				var typeCode = System.Convert.GetTypeCode(value);
				if (typeCode != TypeCode.Object && typeCode != TypeCode.Empty)
				{
					try					
					{
						result = System.Convert.ChangeType(result, targetType);
					}
					catch (InvalidCastException)
					{
					}
				}
			}

			return result;
		}

Usage Example

        protected virtual void SetValue(object value)
        {
            if (_DataContext != null)
            {
                IValueConverter valueConverter   = null;
                var             valueConvertible = CellViewTemplate as IValueConvertible;
                if (valueConvertible != null)
                {
                    valueConverter = valueConvertible.ValueConverter;
                }

                _Value = (T)_DataContext.Convert(_DataContext.Value, ValueType, valueConverter);
                return;
            }

            _Value = (T)value;
        }