【问题标题】:Unknown type 'ContentPage' in XML namespace 'http://xamarin.com/schemas/2014/forms'XML 命名空间“http://xamarin.com/schemas/2014/forms”中的未知类型“ContentPage”
【发布时间】:2017-05-13 05:30:33
【问题描述】:

我正在 MVVM 中编写应用程序。 我的 MainPage.xaml 看起来像这样:

    <?xml version="1.0" encoding="utf-8" ?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 xmlns:view="using:FIARView"
                 xmlns:controls="using:DLToolkit.Forms.Controls;assembly=DLToolkit.Forms.Controls.FlowListView"
                 x:Class="clr-namespace:FIARView.MainPage">
...

我在这个 xaml 文件中使用的所有内容都有一个错误: 例如:

Unknown type 'ContentPage' in XML namespace 'http://xamarin.com/schemas/2014/forms'
Unknown type 'Button' in XML namespace 'http://xamarin.com/schemas/2014/forms'

等等。 我试图寻找答案,但没有找到。我该如何解决这个问题?

【问题讨论】:

  • 您是否引用了 Xamarin 库?
  • 是的,我参考了 Xamarin.Forms.Core、Platform、Platform.WinRT 和 Xamarin.Forms.Xaml。
  • 然后尝试构建;听起来您只是在启动项目方面遇到了问题。
  • 清理和重建整个解决方案没有帮助。

标签: c# xml xaml mvvm xamarin


【解决方案1】:

您可能在资源管理器中创建了一个带有复制粘贴的页面并包含在项目中,因此您错过了这些 xaml 属性:

  • 为“嵌入式资源”构建操作
  • “MSBuild:UpdateDesignTimeXaml”的自定义工具:

【讨论】:

  • 这正是我的问题。谢谢!
  • 你是救生员。谢谢。
【解决方案2】:

我认为您遇到的问题与 Xaml 无关。更有可能是您背后的代码有问题。

FIARView.MainPage 应该看起来像

using Xamarin.Forms;

namespace FAIRVIEW
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }
    }
}

另一种可能是你的代码在基类后面。

当您说您使用 MVVM 时,我猜这意味着您使用诸如 MVVMCross 之类的东西。其中一些希望您将代码后面的基类更改为 ContentPage 以外的东西。执行此操作时,您还需要将 Xaml 中的标记更改为新的基类。

【讨论】:

    【解决方案3】:

    确保您在 PCL/Shared 项目而不是 WinRT 平台项目中编辑 XAML。 Here 也是一个帮助您入门的教程。

    Windows 项目也使用 XAML,因此可能会造成混淆。对于 Xamarin.Forms,您将在共享(PCL 或共享资产)项目中创建 UI,它的类型特定于 Forms。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 2011-12-19
      • 1970-01-01
      相关资源
      最近更新 更多