BlazorWebView 内的 .NET MAUI Xaml

Fab*_*her 8 .net blazor maui

我正在完全使用 Blazor 构建我的应用程序。一切都发生在我的 BlazorWebView 内。是否可以RefreshView在 .razor 文件中使用类似内容?我知道我可以ContentView从代码后面实例化 a 但我可以将它实现到页面中吗?

Mar*_*ing 10

我知道这是一个老问题,但如果有人觉得它有用的话,这是我的解决方案。如果有更简单的方法可以做到这一点,请随时发表评论。

在 MainPage.xaml 中,我用 RefreshView 包围 BlazorWebView:

<RefreshView x:Name="RefreshView" Refreshing="RefreshView_Refreshing">
    <BlazorWebView x:Name="blazorWebView" HostPage="wwwroot/index.html">
        <BlazorWebView.RootComponents>
            <RootComponent Selector="#app" ComponentType="{x:Type local:Main}" />
        </BlazorWebView.RootComponents>
    </BlazorWebView>
</RefreshView>
Run Code Online (Sandbox Code Playgroud)

在事件处理程序中,我尝试调用所有剃刀页面的基类:

    void RefreshView_Refreshing(object sender, EventArgs e)
    {
        if (RefreshablePageBase.Current?.NavigationManager != null)
        {
            var navigationManager = RefreshablePageBase.Current.NavigationManager;
            navigationManager.NavigateTo(navigationManager.Uri, true, true);
            RefreshView.IsRefreshing = false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我尝试对所有剃刀页面使用这个基类:

using Microsoft.AspNetCore.Components;

namespace GotchaFitness.Razor.Pages;

public abstract class RefreshablePageBase : ComponentBase
{
    public static RefreshablePageBase Current;

    [Inject]
    public NavigationManager NavigationManager { get; set; }

    protected RefreshablePageBase()
    {
        Current = this;
    }
}
Run Code Online (Sandbox Code Playgroud)