/ src / modules / cmdpal / Microsoft.CmdPal.UI / Helpers / BindTransformers.cs
BindTransformers.cs
 1  // Copyright (c) Microsoft Corporation
 2  // The Microsoft Corporation licenses this file to you under the MIT license.
 3  // See the LICENSE file in the project root for more information.
 4  
 5  using Microsoft.UI.Xaml;
 6  
 7  namespace Microsoft.CmdPal.UI.Helpers;
 8  
 9  internal static class BindTransformers
10  {
11      public static bool Negate(bool value) => !value;
12  
13      public static Visibility NegateVisibility(Visibility value) => value == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
14  
15      public static Visibility EmptyToCollapsed(string? input)
16          => string.IsNullOrEmpty(input) ? Visibility.Collapsed : Visibility.Visible;
17  
18      public static Visibility EmptyOrWhitespaceToCollapsed(string? input)
19          => string.IsNullOrWhiteSpace(input) ? Visibility.Collapsed : Visibility.Visible;
20  
21      public static Visibility EmptyOrWhitespaceToVisible(string? input)
22          => string.IsNullOrWhiteSpace(input) ? Visibility.Visible : Visibility.Collapsed;
23  
24      public static Visibility VisibleWhenAny(bool value1, bool value2)
25          => (value1 || value2) ? Visibility.Visible : Visibility.Collapsed;
26  }