默认情况下,绑定器不能将布尔值转换为可见性,而不必每次都提供BooleanToVisibilityConverter。有人知道为什么吗?
更新
我现在已经找到了一种方法:
创建一个如下的TypeConverter:
public class VisibilityFromBooleanConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
if (sourceType == typeof(Boolean)) return true;
return base.CanConvertFrom(context, sourceType);
}
public override object ConvertFrom(ITypeDescriptorContext context,
System.Globalization.CultureInfo culture, object value)
{
if (value is Boolean) return ((Boolean)value) ? Visibility.Visible :
Visibility.Collapsed;
return base.ConvertFrom(context, culture, value);
}
将以下内容添加到您的应用程序中:
TypeDescriptor.AddAttributes(typeof(Visibility),
new TypeConverterAttribute(typeof(VisibilityFromBooleanConverter)));
看起来它完全正常运行。现在,您不必为每个布尔绑定提供一个BooleanToVisibilityConverter。