IValueConverter for bool to Visibility

By Robbe Morris

Quick tip for creating an IValueConverter that takes a boolean value from say a database record and sets the Visibility property on a XAML control to Visible or Collapsed.

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Windows;
using System.Windows.Media.Imaging;
using System.Windows.Controls;
using System.Windows.Data;

public class VisibilityConverter : IValueConverter
{
    object IValueConverter.Convert(object value, Type targetType,object parameter, CultureInfo culture)
    {
       try
      {
         if (Convert.ToBoolean(value.ToString())) return System.Windows.Visibility.Visible;
      }
      catch { }
      return System.Windows.Visibility.Collapsed;
    }

    object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
      return null;
    }
}

// Register as UserControl resource
<UserControl.Resources>
     <XAMLConverters:VisibilityConverter x:Key="localVisibilityConverter" />
</UserControl.Resources>

// Syntax use in XAML binding
Visibility="{Binding Path=EditVisibility, Mode=OneWay,Converter={StaticResource localVisibilityConverter}}"

IValueConverter for bool to Visibility  (8281 Views)