我在 dotnet maui intelisense 中遇到问题。调试器说:错误 XFC0000 无法解析类型“clr-namespace:MAUI.Views:LoginPage”。当我添加新页面时,问题就消失了,例如 NewPage.xaml。它可以找到我添加的那个,但找不到以前在那里的那些。谢谢你的时间。
我多次尝试构建和恢复项目。它只是说 LoginPage 无法解析。我多次检查 LoginPage 在 Views 命名空间中。
代码:
登录页面.xaml.cs:
using MAUI.ViewModel;
namespace MAUI;
public partial class LoginPage : ContentPage
{
public LoginPage(LoginPageViewModel vm)
{
InitializeComponent();
BindingContext = vm;
}
}
当我将命名空间从 MAUI 更改为 MAUI.Views 时,方法 InitializeComponent() 抛出错误:名称 InitializeComponent 在其当前上下文中不存在。对于命名空间 MAUI.Views 中的其余页面,我现在可以在 XAML 中使用它们。看起来 intelisense 不知道它们但是当我编译项目并运行它时一切正常。
在您的代码中,LoginPage 的命名空间是 MAUI 而不是 MAUI.Views。所以 LoginPage.xaml.cs 应该是:
using MAUI.ViewModel;
namespace MAUI.Views;
public partial class LoginPage : ContentPage
{
public LoginPage(LoginPageViewModel vm)
{
InitializeComponent();
BindingContext = vm;
}
}
LoginPage.xaml 应该是:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Maui.Views.LoginPage">
我认为您只需要更改 AppShell 中的引用即可。
页面位于“MAUI”命名空间中:
namespace MAUI;
public partial class LoginPage : ContentPage
所以这使它成为“MAUI.LoginPage”。在你的 AppShell 的顶部放这个:
xmlns:views="clr-namespace:MAUI"
然后在 AppShell 页面本身,您可以这样做:
<ShellItem FlyoutItemIsVisible="False" x:Name="LoginPageShellItem">
<ShellContent ContentTemplate="{DataTemplate views:LoginPage}" Route="LoginPage" />
</ShellItem>