Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
MultiBindingToTuple.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using System;
4 using System.Globalization;
5 
6 namespace SiliconStudio.Presentation.ValueConverters
7 {
8  public class MultiBindingToTuple : OneWayMultiValueConverter<MultiBindingToTuple>
9  {
10  public override object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
11  {
12  switch (values.Length)
13  {
14  case 2: return new Tuple<object, object>(values[0], values[1]);
15  case 3: return new Tuple<object, object, object>(values[0], values[1], values[2]);
16  case 4: return new Tuple<object, object, object, object>(values[0], values[1], values[2], values[3]);
17  case 5: return new Tuple<object, object, object, object, object>(values[0], values[1], values[2], values[3], values[4]);
18  case 6: return new Tuple<object, object, object, object, object, object>(values[0], values[1], values[2], values[3], values[4], values[5]);
19  case 7: return new Tuple<object, object, object, object, object, object, object>(values[0], values[1], values[2], values[3], values[4], values[5], values[6]);
20  case 8: return new Tuple<object, object, object, object, object, object, object, object>(values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[7]);
21  default: throw new ArgumentException("This converter supports only between two and eight elements");
22  }
23  }
24  }
25 }
override object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)