Silverlight 转换器无法转换错误

Silverlight 转换器无法转换错误,silverlight,xaml,converter,ivalueconverter,Silverlight,Xaml,Converter,Ivalueconverter,在我的silverlight项目中,我有一个BooleanToVisibilityConverter和一个InverseBoleAutoVisibilityConverter。两者都相当标准,但由于某种原因,在这个对话框中,它们抛出了很多错误(至少我认为是转换器)。我似乎不能让它抛出任何异常,我可以查看我只是得到这个输出,我不知道为什么 System.Windows.Data Error: 'MS.Internal.Data.DynamicValueConverter' converter fa

在我的silverlight项目中,我有一个
BooleanToVisibilityConverter
和一个
InverseBoleAutoVisibilityConverter
。两者都相当标准,但由于某种原因,在这个对话框中,它们抛出了很多错误(至少我认为是转换器)。我似乎不能让它抛出任何异常,我可以查看我只是得到这个输出,我不知道为什么

System.Windows.Data Error: 'MS.Internal.Data.DynamicValueConverter' converter failed to convert value 'True' (type 'System.String'); BindingExpression: Path='CategoryTitle' DataItem='null' (HashCode=0); target element is 'System.Windows.Controls.Grid' (Name=''); target property is 'Visibility' (type 'System.Windows.Visibility').. System.ArgumentException: Requested value 'True' was not found.
   at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
   at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
   at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
   at MS.Internal.SilverlightTypeConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
   at MS.Internal.Data.DefaultValueConverter.ConvertHelper(Object o, Type destinationType, CultureInfo culture, Boolean isForward)
   at MS.Internal.Data.TargetDefaultValueConverter.Convert(Object o, Type type, Object parameter, CultureInfo culture)
   at MS.Internal.Data.DynamicValueConverter.Convert(Object value, Type targetType, Object parameter, CultureInfo culture)
   at System.Windows.Data.BindingExpression.ConvertValue(Object value, DependencyProperty dp, String failureResource). 
这是XAML

<converters:InverseBooleanToVisibilityConverter x:Key="InverseBoolToVisibility" />
<Grid Visibility="{Binding CategoryTitle, Converter={StaticResource InverseBoolToVisibility}, FallbackValue=True}">
还有转换器本身

public class InverseBooleanToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return !(bool)value ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        Visibility vis = (Visibility)value;

        if (vis != Visibility.Visible)
        {
            return true;
        }

        return false;
    }
}
这是因为
可见性
需要
可见性枚举
类型。您正试图在您的
后备值中为此使用
bool

public class InverseBooleanToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return !(bool)value ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        Visibility vis = (Visibility)value;

        if (vis != Visibility.Visible)
        {
            return true;
        }

        return false;
    }
}
System.ArgumentException: Requested value 'True' was not found.