我正在尝试 MAUI,但遇到了一个奇怪的错误。它不允许我添加新页面,每次我尝试这样做时,构造函数中的
InitializeComponent
都会给我一个错误:
当前上下文中不存在名称“InitializeComponent”
我在 C# 代码和 XAML 代码中添加了
Microsoft.Maui.Controls
。
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
有人知道在这里做什么吗?
将新的 MAUI 页面添加到项目后,我遇到了同样的错误。解决方案是从
.csproj
文件中删除以下行:
<ItemGroup>
<MauiXaml Remove="Pages\Page1.xaml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\Page1.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
</ItemGroup>
然后删除
InitializeComponent();
文件中的 Page1.xaml.cs
语句,重建项目,最后将 InitializeComponent();
添加回 Page1.xaml.cs
。
问题是 Maui SourceGen 无法为
Page1.xaml.sg.cs
文件生成 Page1.xaml.cs
文件。
让我知道这个解决方案是否适合您。
这已经得到解答,但发现了这个。在 Microsoft Visual Studio 社区
2022 (64-bit) - Preview
Version 17.1.0 Preview 1.1
。我添加了这个
.NET MAUI Project and Item Templates from Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=egvijayanand.maui-item-templates
然后像正常添加一样......并选择MAUI
除了上面的答案。 如果您仍然遇到问题(应用程序在访问该页面时崩溃并且没有其他信息),请尝试以下操作:
namespace DeviceFinder;
public partial class AppShell : Shell
{
public AppShell()
{
InitializeComponent();
Routing.RegisterRoute(nameof(DetailsPage), typeof(DetailsPage));
Routing.RegisterRoute(nameof(SettingsPage), typeof(SettingsPage));
// Specifically, this above line you have to manually add in ^^^
}
}
在 AppShell.XAML 的代码隐藏中,您必须注册路由。 谁知道为什么......但它有效。
对我来说,它创建了 2 个文件:
NewPage1.cs
和 NewPage1.xaml
我需要将
NewPage1.cs
重命名为 NewPage1.xaml.cs
。
我生命中的两个小时我永远不会再回来了。
对我来说,.cs 文件和 xaml.cs 文件中的命名空间不匹配。
设置命名空间以匹配修复它。这是固定的示例:
// from the cs xaml.cs file:
namespace MauiApp2;
public partial class EventDetailsPage : ContentPage
...
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
x:Class=" MauiApp2.EventDetailsPage"
...
x:Class 设置不正确,修复后错误已解决。
我在 AppShell 中也遇到同样的问题
错误文本是 初始化组件
无法打开文件 我们无法打开文件 我们无法打开文件 AppShell.xaml.sg.cs 它可能已被移动、重命名或删除