1 // -------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All Rights Reserved.
3 // -------------------------------------------------------------------
4 //From \\authoring\Sparkle\Source\1.0.1083.0\Common\Source\Framework\Data
5 namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression.Framework.Data
8 using System.Collections.Generic;
9 using System.ComponentModel;
10 using System.Globalization;
12 using System.Windows.Data;
13 using System.Diagnostics.CodeAnalysis;
15 [SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")]
16 internal sealed class ComposingConverter : IValueConverter
18 private List<IValueConverter> converters = new List<IValueConverter>();
19 [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
21 public List<IValueConverter> Converters
23 get { return this.converters; }
26 // IValueConverter Members
27 public object Convert(object o, Type targetType, object parameter, CultureInfo culture)
29 for (int i = 0; i < this.converters.Count; i++)
31 o = converters[i].Convert(o, targetType, parameter, culture);
36 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
38 for (int i = this.converters.Count - 1; i >= 0; i--)
40 value = converters[i].ConvertBack(value, targetType, parameter, culture);