//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------- namespace System.Activities.Presentation.Internal.PropertyEditing.Editors { using System; using System.Collections; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Windows.Data; using System.Activities.Presentation; // <summary> // Converts ints >0 to true, everything else to false. This class is instantiated from XAML. // </summary> [SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")] internal class NonZeroToBoolConverter : IValueConverter { private bool _invert; // <summary> // If set to false, NonZeroToBoolConverter.Convert() converts 0 to false and !0 to true. // If set to true, the result is inverted. // </summary> [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] public bool Invert { get { return _invert; } set { _invert = value; } } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (targetType == typeof(bool) && value is int) { return (((int)value) > 0) ^ _invert; } return false; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw FxTrace.Exception.AsError(new NotImplementedException()); } } } |