C# 不同名称空间中的XAML转换器
我正在VC2013中开发一款c#Windows Phone 8.1应用程序,遇到了一个奇怪的问题 为了让我的代码更“干净”,我决定把我应用程序的不同部分放到不同的文件夹中。在c代码中从这些文件夹调用XAML页面没有问题 但是我似乎在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
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.