XAML Converter在不同的命名空间中

时间:2015-03-05 08:56:11

标签: 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
-- Folder: Converters
     |
     -- Files: converterClass.cs

要像我一样使用IValueConverter中的converterClass.cs,我将以下内容放入我的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>
...

现在它发生了,如果我输入<myConverter:,自动完成确实会找到我的转换器类,但是在编译时(它正在编译)并在设备上进行测试时,没有任何转换器正常工作,而且我也遇到错误错误列表说

The name 'DateTimeConverter' in namespace 'using:myApp.Converters' does not exist.

我哪里出错了?

1 个答案:

答案 0 :(得分:1)

哇...在使用VS2015之后,同样的错误仍然存​​在,我用设置和东西玩了一下。

我一直很好奇,为什么它会编译和部署,即使它引发了很多错误。问题似乎不一致。

解决方案与预期不同:

您必须将Solution Platforms设置为x86而不是ARM(我需要在设备上部署)。幸运的是,VS2015有一个方便的快捷方式,你可以对VS2013说些什么。

然而它已经解决了......