1 // -------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 // -------------------------------------------------------------------
4 //From \\authoring\Sparkle\Source\1.0.1083.0\Common\Source\Framework\ValueEditors
5 namespace System.Activities.Presentation.Internal.PropertyEditing.FromExpression.Framework.ValueEditors
8 using System.Globalization;
10 using System.Windows.Data;
11 using System.Windows.Media;
12 using System.Diagnostics.CodeAnalysis;
13 using System.Activities.Presentation;
16 // Implement this interface to provide icons to the ValueToIconProvider
18 internal interface IIconProvider
20 ImageSource GetIconAsImageSource(object key, object parameter);
24 // Gets an Icon as a Brush from the IIconProvider passed in as the first object of a multibinding
25 // using the second object as the key.
28 [SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")]
29 internal class ValueToIconConverter : IMultiValueConverter
31 public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
33 if (values.Length == 2)
35 IIconProvider iconProvider = values[0] as IIconProvider;
36 object objectToLookUp = values[1];
37 if (iconProvider != null && objectToLookUp != null)
39 return iconProvider.GetIconAsImageSource(objectToLookUp, parameter);
46 public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
48 throw FxTrace.Exception.AsError(new NotImplementedException(ExceptionStringTable.NoConvertBackForValueToIconConverter));