// ------------------------------------------------------------------- // 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.ComponentModel; using System.Globalization; using System.Reflection; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Diagnostics.CodeAnalysis; // // (bool-to-Visibility) Maps true to Visible and false to Collapsed. // [SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")] internal class BoolToVisibilityCollapsedConverter : IValueConverter { bool invertBoolean = false; [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] public bool InvertBoolean { get { return this.invertBoolean; } set { this.invertBoolean = value; } } // IValueConverter Implementation public object ConvertBack(object o, Type targetType, object parameter, CultureInfo culture) { Visibility visibility = (Visibility)o; return ((visibility == Visibility.Visible) ^ this.invertBoolean); } public object Convert(object o, Type targetType, object parameter, CultureInfo culture) { Visibility result = Visibility.Collapsed; if (o is Nullable) { if ((((Nullable)o).Value) ^ this.invertBoolean) { result = Visibility.Visible; } } else if (o is bool) { if (((bool)o) ^ this.invertBoolean) { result = Visibility.Visible; } } return result; } } }