// ------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All Rights Reserved. // ------------------------------------------------------------------- //From \\authoring\Sparkle\Source\1.0.1083.0\Common\Source\Framework\Data namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression.Framework.Data { using System; using System.Collections.Generic; using System.ComponentModel; using System.Globalization; using System.Windows; using System.Windows.Data; using System.Diagnostics.CodeAnalysis; [SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")] internal sealed class ComposingConverter : IValueConverter { private List<IValueConverter> converters = new List<IValueConverter>(); [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] public List<IValueConverter> Converters { get { return this.converters; } } // IValueConverter Members public object Convert(object o, Type targetType, object parameter, CultureInfo culture) { for (int i = 0; i < this.converters.Count; i++) { o = converters[i].Convert(o, targetType, parameter, culture); } return o; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { for (int i = this.converters.Count - 1; i >= 0; i--) { value = converters[i].ConvertBack(value, targetType, parameter, culture); } return value; } } } |