我正在启动learning XAML,我在BlankPage应用程序中添加了一些代码。突然间,一个构造函数正在初始化一个组件:
public BlankPage()
{
this.InitializeComponent();
}
停止工作。我现在遇到了这个错误:
'BlankApplication.BlankPage'不包含'InitializeComponent'的定义,并且没有扩展方法'InitializeComponent'接受类型为'BlankApplication.BlankPage'的第一个参数'(您是否缺少using指令或程序集引用? )
老实说,我没有做任何事情,我甚至没有看过这部分代码,现在它不起作用。
屏幕截图:
答案 0 :(得分:13)
只是提供一些关于如何解决这个问题的更多信息(因为这个解释有点模糊不清)..
这个问题(对我而言)是因为我在创建项目后更改了代码中的命名空间。为了解决这个问题,我不得不在几个地方进行一些更改:
1:在App.xaml中,我必须更改以下内容:
<Application
x:Class="New.Namespace.App"
2:在MainPage.xaml中,我必须更改以下内容:
<Page
x:Class="New.Namespace.MainPage"
您还需要确保更改App.xaml.cs以及MainPage.xaml.cs中的“命名空间”行。
最后,您还需要确保更新Package.appxmanifest中的Project Entrypoint以指向“New.Namespace.App”。
答案 1 :(得分:3)
当您更改类的命名空间时,会发生这种情况,您必须在XAML文件中执行相同的操作。
XAML文件中有两个带有旧命名空间的位置。
答案 2 :(得分:0)
如果您的主类的命名空间与.xaml文件的 x:Class 属性不同,则会出现此错误。例如;
您的MainPage.xaml.cs;
namespace UWPControls
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
}
}
您的MainPage.xaml;
<Page
x:Class="UWPControls_Different.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UWPHelloWorld"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
</page>
在将 x:class 更改为之前,您将看到错误。
x:Class =“ UWPControls.MainPage”
答案 3 :(得分:0)
对我来说,该项目是其他项目的内部解决方案。如果此处的建议不起作用,则可以通过简单的从解决方案中卸载和重新加载项目来解决问题,并修复所有错误(当然需要重新构建)。
答案 4 :(得分:-1)
我的解决方案:对于我的&#34; SomePage:ContentPage&#34;,我更改了XAML属性:
MSBuild:Compile
到MSBuild:UpdateDesignTimeXaml
Page
到Embedded resource
使用Visual Studio 2017 Enterprise 15.3.4
答案 5 :(得分:-3)
问题解决了。 原因:我忘了也在xaml代码中更改自定义应用程序名称。 解决方案:我在XAML中更改了应用程序名称,现在效果很好。