UWP报错:命名空间using:MyFirstApp.common中不存在DataToStringConverter
解决XAML中无法引用自定义转换器的问题
我在项目下创建了名为common的文件夹,并在其中创建了DataToStringConverter.cs文件。在将其作为StaticResource使用时,按如下方式引用却始终报错:
'the name "DataToStringConverter" does not exist in the namespace "using:MyFirstApp.common"'
已清理解决方案并重新生成,但问题仍未解决,请问是否遗漏了某些设置?
相关代码
App.xaml
<Application x:Class="MyFirstApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:MyFirstApp" xmlns:common="using:MyFirstApp.common" > <Application.Resources> <common:DataToStringConverter x:Key="DateTimeConverter"/> <!-- 报错行 --> </Application.Resources> </Application>
DataToStringConverter.cs
namespace MyFirstApp.common { public class DataToStringConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } } }
可能的解决步骤
- 确认类的访问修饰符:确保
DataToStringConverter类是public(你的代码中已设置,但需避免误设为internal),XAML只能访问公共类。 - 检查命名空间大小写:XAML对命名空间大小写敏感,确认代码中的
MyFirstApp.common和XAML引用的using:MyFirstApp.common完全一致,包括文件夹名称的大小写(比如文件夹实际是Common但命名空间写common会导致匹配失败)。 - 验证文件生成操作:右键
DataToStringConverter.cs文件,打开属性面板,确认生成操作设置为编译(Build Action = Compile)。如果设为“内容”或其他选项,编译时不会将该类纳入程序集,XAML自然找不到。 - 检查项目目标框架:若为UWP项目,确认目标框架版本与项目配置一致,框架版本不匹配可能导致引用失效。
- 手动确认项目文件引用:打开项目的
.csproj文件,检查是否包含如下条目:
若缺失,手动添加后重新加载项目。<Compile Include="common\DataToStringConverter.cs" /> - 彻底清理重建:删除项目目录下的
bin和obj文件夹,再重新生成整个解决方案,避免残留的编译文件干扰。
内容的提问来源于stack exchange,提问作者ricky rocky
相关产品推荐
相关产品推荐

