C# XAML为转换器类添加命名空间

C# XAML为转换器类添加命名空间,c#,class,xaml,namespaces,C#,Class,Xaml,Namespaces,我总是得到“xxx的名字在yyy中不存在”。 我不明白为什么,我想我尝试了所有可能的组合 我所有的cs文件,包括主窗口都在“Web\u Media\u Seeker\u WPF”名称空间中 转换器.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; name

我总是得到“xxx的名字在yyy中不存在”。 我不明白为什么,我想我尝试了所有可能的组合

我所有的cs文件,包括主窗口都在“Web\u Media\u Seeker\u WPF”名称空间中

转换器.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;

namespace Web_Media_Seeker_WPF.WPFConverters
{
    public class BoolToValueConverter<T> : IValueConverter
    {
        public T FalseValue { get; set; }
        public T TrueValue { get; set; }

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value == null)
                return FalseValue;
            else
                return (bool)value ? TrueValue : FalseValue;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return value != null ? value.Equals(TrueValue) : false;
        }
    }

    public class BoolToObjectConverter : BoolToValueConverter<Object> { }
    public class BoolToStringConverter : BoolToValueConverter<String> { }
    public class BoolToBrushConverter : BoolToValueConverter<System.Windows.Media.Brush> { }
    public class BoolToVisibilityConverter : BoolToValueConverter<System.Windows.Visibility> { }
    public class BoolToColorConverter : BoolToValueConverter<System.Windows.Media.Color> { }
    public class BoolToImageSourceConverter : BoolToValueConverter<System.Windows.Media.ImageSource> { }
    public class BootToBoolConverter : BoolToValueConverter<bool> { }

        public class AddValueConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            object result = value;
            int Value;

            if (value != null && targetType == typeof(Int32) &&
                int.TryParse((string)parameter,
                System.Globalization.NumberStyles.Integer, culture, out Value))
            {
                result = (int)value + (int)Value;
            }

            return result;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows.Data;
名称空间Web_Media_Seeker_WPF.WPFConverters
{
公共类BoolToValueConverter:IValueConverter
{
公共T值{get;set;}
公共T TrueValue{get;set;}
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
如果(值==null)
返回错误值;
其他的
返回(bool)值?TrueValue:false值;
}
公共对象转换回(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
返回值!=null?值。等于(TrueValue):false;
}
}
公共类BoolTobObjectConverter:BoolToValueConverter{}
公共类BoolToStringConverter:BoolToValueConverter{}
公共类BoolToBrushConverter:BoolToValueConverter{}
公共类BoolToVisibilityConverter:BoolToValueConverter{}
公共类BoolToColorConverter:BoolToValueConverter{}
公共类BoolToImageSourceConverter:BoolToValueConverter{}
公共类BootToBoolConverter:BoolToValueConverter{}
公共类AddValueConverter:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
对象结果=值;
int值;
if(value!=null&&targetType==typeof(Int32)&&
int.TryParse((字符串)参数,
System.Globalization.NumberStyles.Integer、区域性、输出值)
{
结果=(int)值+(int)值;
}
返回结果;
}
公共对象转换回(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
抛出新的NotImplementedException();
}
}
}
main window.xaml

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namesapce:Web_Media_Seeker_WPF.WPFConverters"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        x:Class="Web_Media_Seeker_WPF.MainWindow"
        Title="Web Media Seeker"
        Height="563"
        Width="836">
  <Window.Resources>
    <local:BoolToImageSourceConverter x:Key="BoolToWorkImageSource"
                                      TrueValue="Images/work.png"
                                      FalseValue="Images/idle.png" />
    <local:BootToBoolConverter x:Key="InvertBool"
                               TrueValue="False"
                               FalseValue="True" />
    <local:BoolToStringConverter x:Key="WorkTooltip"
                                 TrueValue="Working..."
                                 FalseValue="Idle" />
  </Window.Resources>
and stuff...

还有别的。。。
我有以下错误:

名称“booltimagesourceconverter”在命名空间“clr namesapce:Web\u Media\u Seeker\u WPF.wpfvaluescoverters”中不存在

名称“BoolToStringConverter”在命名空间“clr namesapce:Web\u Media\u Seeker\u WPF.wpfvaluescoverters”中不存在

名称“BootToBoolConverter”在命名空间“clr namesapce:Web\u Media\u Seeker\u WPF.wpfvaluescoverters”中不存在

XML命名空间“clr namesapce:Web\u Media\u Seeker\u WPF.WPFValuesConverters”中不存在标记“booltImageSourceConverter”

找不到类型“local:booltimagesourceconverter”。验证是否缺少部件引用,以及是否已生成所有引用的部件

找不到类型“local:BoolToStringConverter”。验证是否缺少部件引用,以及是否已生成所有引用的部件

找不到类型“local:BootToBoolConverter”。验证是否缺少部件引用,以及是否已生成所有引用的部件


您的命名空间声明中存在错误:

xmlns:local="clr-namesapce:Web_Media_Seeker_WPF.WPFConverters"
应该是

xmlns:local="clr-namespace:Web_Media_Seeker_WPF.WPFConverters"

您将
namesapce
替换为
namespace

我遇到了这个问题,但没有输入错误。 问题不是直接与XAML有关,或者至少不是完全的。最初的开发人员将窗口标记命名为与代码隐藏类名相同的名称,现在这似乎被禁止了。这是XAML的唯一问题。其他一切都与WPF和Windows.System.Data库中的重叠有关,这导致(System.Windows.Data命名空间中的)IValueConverter无法识别。
我首先在对象浏览器中搜索所有具有IValueConverter接口的库。其中两个在我的项目中,一个是事后考虑的,因为我认为我需要它来替换我删除的WPF toolkit 3.5的元素。我删除了一个我认为可以不用的,这样就消除了这个问题。这是一种“模棱两可的引用”错误,但没有出现这种情况。

我试过这个。删除后,项目生成不会出现问题。当我重新添加它们时,会再次出现错误。您可以运行应用程序吗?有时VS不会立即得到它。不,我得到“有生成错误。你想运行最后一个成功的生成吗?”它们是否位于同一个程序集中?得到了!您在XAML中的名称空间声明中有一个输入错误