Beispiel #1
0
 public sealed override object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
 {
     if (!ValidateConvertParameters(values, targetType))
     {
         return(default(TTarget));
     }
     return(Convert(MultiValueHelper.CheckValue <TSource1>(values, 0), MultiValueHelper.CheckValue <TSource2>(values, 1), parameter, culture));
 }
Beispiel #2
0
        public sealed override object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            ValidateConvertBackParameters(value, targetTypes);
            MultiValueHelper.CheckType <TSource1>(targetTypes, 0);
            MultiValueHelper.CheckType <TSource2>(targetTypes, 1);
            TSource1 obj1;
            TSource2 obj2;

            ConvertBack((TTarget)value, out obj1, out obj2, parameter, culture);
            return(new object[] { obj1, obj2 });
        }
Beispiel #3
0
 public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
 {
     if (values.Length != 2)
     {
         throw new ArgumentException("Insufficient source parameters: 2");
     }
     if (values.Any(obj => obj == DependencyProperty.UnsetValue || obj == BindingOperations.DisconnectedSource))
     {
         return(default(TTarget));
     }
     MultiValueHelper.CheckValue <TSource1>(values, 0);
     MultiValueHelper.CheckValue <TSource2>(values, 1);
     if (!targetType.IsAssignableFrom(typeof(TTarget)))
     {
         throw new InvalidOperationException(string.Format("Target is not from Type: {0}", typeof(TTarget).FullName));
     }
     return(Convert((TSource1)values[0], (TSource2)values[1], parameter, culture));
 }
Beispiel #4
0
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            if (targetTypes.Length != 2)
            {
                throw new ArgumentException("Insufficient source parameters: 2");
            }
            if (!(value is TTarget) && (value != null || typeof(TTarget).IsValueType))
            {
                throw new ArgumentException(string.Format("Value is not from Type: {0}", typeof(TTarget).FullName));
            }
            MultiValueHelper.CheckType <TSource1>(targetTypes, 0);
            MultiValueHelper.CheckType <TSource2>(targetTypes, 1);
            TSource1 out1;
            TSource2 out2;

            ConvertBack((TTarget)value, out out1, out out2, parameter, culture);
            return(new object[]
            {
                out1, out2
            });
        }