BooleanToVisibilityConverter.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.ComponentModel; using System.Windows; using System.Windows.Media; using System.Windows.Data; using System.Globalization; using System.Collections.Generic; using MS.Internal.Controls; namespace System.Windows.Controls { /// <summary> /// Convert between boolean and visibility /// </summary> [Localizability(LocalizationCategory.NeverLocalize)] public sealed class BooleanToVisibilityConverter : IValueConverter { /// <summary> /// Convert bool or Nullable<bool> to Visibility /// </summary> /// <param name="value">bool or Nullable<bool></param> /// <param name="targetType">Visibility</param> /// <param name="parameter">null</param> /// <param name="culture">null</param> /// <returns>Visible or Collapsed</returns> public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { bool bValue = false; if (value is bool) { bValue = (bool)value; } else if (value is Nullable<bool>) { Nullable<bool> tmp = (Nullable<bool>)value; bValue = tmp.HasValue ? tmp.Value : false; } return (bValue) ? Visibility.Visible : Visibility.Collapsed; } /// <summary> /// Convert Visibility to boolean /// </summary> /// <param name="value"></param> /// <param name="targetType"></param> /// <param name="parameter"></param> /// <param name="culture"></param> /// <returns></returns> public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (value is Visibility) { return (Visibility)value == Visibility.Visible; } else { return false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Ref: http://www.projky.com/dotnet/3.0/System/Windows/Controls/BooleanToVisibilityConverter.cs.html
下载地址:http://www.projky.com/dotnet/3.0/System/Windows/Controls/BooleanToVisibilityConverter.cs