C# 不同名称空间中的XAML转换器

C# 不同名称空间中的XAML转换器,c#,xaml,namespaces,windows-phone-8.1,converter,C#,Xaml,Namespaces,Windows Phone 8.1,Converter,我正在VC2013中开发一款c#Windows Phone 8.1应用程序,遇到了一个奇怪的问题 为了让我的代码更“干净”,我决定把我应用程序的不同部分放到不同的文件夹中。在c代码中从这些文件夹调用XAML页面没有问题 但是我似乎在XAML代码中链接这些文件夹时遇到了问题。例如,我有以下结构: root, Files: App.cs+xaml, Mainpage.cs+xaml | -- Folder: Login | -- Files: LoginPage.cs+xaml

我正在VC2013中开发一款c#Windows Phone 8.1应用程序,遇到了一个奇怪的问题

为了让我的代码更“干净”,我决定把我应用程序的不同部分放到不同的文件夹中。在c代码中从这些文件夹调用XAML页面没有问题

但是我似乎在XAML代码中链接这些文件夹时遇到了问题。例如,我有以下结构:

root, Files: App.cs+xaml, Mainpage.cs+xaml
|
-- Folder: Login
     |
     -- Files: LoginPage.cs+xaml
-- Folder: Converters
     |
     -- Files: converterClass.cs
要像往常一样使用
converterClass.cs
中的
IValueConverter
,我将以下内容放在XAML文件的头中:

<Page
 x:Class="myApp.Login.LoginPage"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:local="using:meinStundenplaner.Login"
 xmlns:myConverter="using:myApp.Converters"
 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 mc:Ignorable="d"
 Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

<Page.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="../Styles/standardStyles.xaml"/>
        </ResourceDictionary.MergedDictionaries>

        <myConverter:DateTimeConverter x:Key="DateTimeConverter" />
        ... some more converters

    </ResourceDictionary>
</Page.Resources>
...

我哪里出错了?

哇。。。使用VS2015后,同样的错误依然存在,我在设置和其他方面做了一些调整

我一直很好奇,为什么它会编译和部署,即使它触发了这么多错误。这个问题似乎前后矛盾

解决方案与预期不同:

您必须将
solutionplatforms
设置为
x86
,而不是
ARM
(我需要在设备上部署它)。幸运的是,VS2015在一个方便的快捷方式中有这个选项,这是关于VS2013你不能说的


尽管如此,还是解决了…

再次检查DateTimeConverter类是否位于myApp.Converters命名空间中。您可能已将文件拖到文件夹中,但忘记更改C代码中的名称空间。此外,请检查您的转换器是否实际名为DateTimeConverter。我感到困惑。根据(以及其他参考资料),对于Windows Phone应用程序,您应该在命名空间声明中使用
clr命名空间
,而不是
使用
。你真的在编写Windows Phone应用程序吗?如果是这样,为什么不使用
clr名称空间
?如果你这样做会发生什么?如果编辑器不知道Windows Phone和Windows RT之间的区别,因此auto可以通过错误的声明完成,即使它无法成功编译。好的,我首先尝试将其重命名为
clr namespace
,但与之前一样,他给了我一个错误(是的,项目是WP8.1)然后,当我键入名称空间时,下拉列表(自动更正)会使用将其更正回
。名称空间和转换器的名称正确(再次仔细检查)谢谢Peter Duniho!我正在以UniversalApp的身份编写一个win10mobile应用程序,我需要使用
而不是
clr名称空间
切换到
The name 'DateTimeConverter' in namespace 'using:myApp.Converters' does not exist.