我目前正在尝试Maui,并希望保留Maui Shell和组件作为基础平台。但我发现,包含大约20或30个复杂项目的CollectionView几乎无法滚动,并出现奇怪的显示问题。所以我目前正在考虑在Razor中做更复杂的显示。我在网上使用Razor已经有一段时间了,显示数千个项目没有任何问题。因此,手机上50或60个复杂的显示项目应该不是问题。我想做的不是在BlazoeWebView中托管整个应用程序,而是通过更改HostPage"在BlazorWebView中每次调用一个Razor页面。或"rootcomponent">
<BlazorWebView HostPage="wwwroot/index.html">
<BlazorWebView.RootComponents>
<RootComponent Selector="#app" ComponentType="{x:Type local:Main}" />
</BlazorWebView.RootComponents>
</BlazorWebView>
到目前为止,我还没有找到正确的应用程序结构来允许这一点。任何关于如何实现这一目标的信息将不胜感激。
I figured it out.
Set up an XML namespace with the path to your razor view.
Leave the HostPage at "wwwroot/index.html"
Leave the Selector at Selector="#app"
Set the ContentType to the name of your Razor page.
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:view="**clr-namespace:Your.Path.To.Razor.Page">
<BlazorWebView HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
HostPage="wwwroot/index.html">
<BlazorWebView.RootComponents>
<RootComponent Selector="#app" ComponentType="{x:Type view:Razor_Page_Name}" />
</BlazorWebView.RootComponents>
</BlazorWebView>
</ContentView>