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.ComponentModel;
9 using System.Globalization;
10 using System.Reflection;
12 using System.Windows.Controls;
13 using System.Windows.Data;
14 using System.Diagnostics.CodeAnalysis;
17 // (bool-to-Visibility) Maps true to Visible and false to Collapsed.
20 [SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")]
21 internal class BoolToVisibilityCollapsedConverter : IValueConverter
23 bool invertBoolean = false;
25 [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
26 public bool InvertBoolean
28 get { return this.invertBoolean; }
29 set { this.invertBoolean = value; }
32 // IValueConverter Implementation
33 public object ConvertBack(object o, Type targetType, object parameter, CultureInfo culture)
35 Visibility visibility = (Visibility)o;
36 return ((visibility == Visibility.Visible) ^ this.invertBoolean);
39 public object Convert(object o, Type targetType, object parameter, CultureInfo culture)
41 Visibility result = Visibility.Collapsed;
43 if (o is Nullable<bool>)
45 if ((((Nullable<bool>)o).Value) ^ this.invertBoolean)
47 result = Visibility.Visible;
52 if (((bool)o) ^ this.invertBoolean)
54 result = Visibility.Visible;