using DTS.Common.Enums; using DTS.Common.Enums.DASFactory; using System; using System.Windows; using System.Windows.Data; namespace DTS.Common.Converters { /// /// This converter will returns a visibility based on whether pretrigger should be shown or not /// it should be bound to RecordingMode an optional parameter allows inverting the return /// public class RecordingModePreTriggerVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { var showPreTrigger = true; if ((value is RecordingModes mode) && (RecordingModeExtensions.IsAnActiveMode(mode) || !RecordingModeExtensions.CanProgramPreTrigger(mode))) { showPreTrigger = false; } var invert = false; if (bool.TrueString.Equals(parameter)) { invert = true; } if (showPreTrigger) { return invert ? Visibility.Collapsed : Visibility.Visible; } else { return invert ? Visibility.Visible : Visibility.Collapsed; } } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return null != value && value.Equals(Visibility.Visible) ? parameter : Binding.DoNothing; } } }