缺少InverseBooleanConverter

时间:2017-10-04 10:09:56

标签: c# xaml

我已经从存储库检出了一个XAML应用程序,并且正在尝试构建它。我收到了错误:

The tag 'InverseBooleanConverter' does not exist in XML namespace 'clr- ... 

我没有使用通用表单应用程序的经验,但发现InverseBooleanConverterFreshEssentials包有关。我已经为我当前的项目安装了这个软件包,但这并没有解决问题。

XAML的内容:

<UserControl.Resources>
    <ResourceDictionary>
        <converters:InverseBooleanConverter x:Key="InverseBooleanConverter" />
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Tools.TestTool.Common;component/Styles/ModulesStyle.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

如何避免此错误?

1 个答案:

答案 0 :(得分:3)

此错误表示您在XAML中指定为converters的任何网址(例如xmlns:converters="clr-namespace:MeLibrary.Converters)都不包含从InverseBooleanConverter派生的名为IValueConverter的类。

要解决此问题,请在项目中指出converters更正名称空间。如果您没有任何InverseBooleanConverter类,请创建一个并指向converters新创建的命名空间。

示例转换器:

public class InverseBooleanConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        try
        {
            bool testValue = (bool)value;
            return !testValue; // or do whatever you need with this boolean
        }
        catch { return true; } // or false
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return Convert(value, targetType, parameter, culture);
    }
}