运行时错误:未找到InverseBooleanConverter。
运行时错误:未找到InverseBooleanConverter。
我尝试遵循以下公告的建议时出现了问题:
当我使用ResourceDictionary时,它会导致运行时错误。未找到InverseBooleanConverter。
XMAL如下:
我正在使用链接中提供的相同代码。
即:
[ValueConversion(typeof(bool), typeof(bool))] public class InverseBooleanConverter: IValueConverter { #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (targetType != typeof(bool)) throw new InvalidOperationException("The target must be a boolean"); return !(bool)value; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } #endregion }
在AppResource XML中
..... .....
提前感谢
NS
admin 更改状态以发布 2023年5月20日
您正在使用的密钥不正确。您的资源密钥是InverseBoolToVisibility
,而您使用了InverseBooleanConverter作为密钥。
将资源密钥更改为引用正确的资源:
此外,您的转换器实现是错误的。如果您想根据布尔值的反转更改可见性,请将您的转换器代码更新为:
public class InverseBooleanConverter: IValueConverter { #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (targetType != typeof(Visibility)) throw new InvalidOperationException("The target must be a boolean"); if(!(bool)value) { return Visibility.Visible; } return Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } #endregion }