在.net MAUI中,当在弹出菜单上选择一个项目时,页面不会改变


<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="ArnoFormulynas.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:ArnoFormulynas"
Shell.FlyoutBehavior="Flyout"
Shell.TabBarIsVisible="False">
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
<ShellContent Title="Termodynamics"
ContentTemplate="{DataTemplate local:FormulaPage}"
Route="FormulaPage">

</ShellContent>
<ShellContent Title="Molecular Physics"
ContentTemplate="{DataTemplate local:FormulaPage}"
Route="FormulaPage">
</ShellContent>
</FlyoutItem>
</Shell>

一切工作,直到它没有:D,基本上当我点击一个FlyoutItem,标题只是不改变,它不加载任何新的。appshell。xaml。cs并没有改变,所以我有点困惑。(公式页只是一个空白的ContentPage)

我试着把每个shell内容分成不同的弹出项,只是在代码中弄乱了,不能让它工作

一切工作,直到它没有:D,基本上当我点击一个FlyoutItem,标题只是不改变,它不加载任何新的。appshell。xaml。cs并没有改变,所以我有点困惑。(公式页只是一个空白的ContentPage)

标题没有改变的原因是两个ShellContents的路由是相同的。您可以将Route更改为:

<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
<ShellContent Title="Termodynamics"
ContentTemplate="{DataTemplate local:FormulaPage}"
Route="FormulaPage1">
</ShellContent>
<ShellContent Title="Molecular Physics"
ContentTemplate="{DataTemplate local:FormulaPage}"
Route="FormulaPage2">
</ShellContent>
</FlyoutItem>

标题会根据你点击的FlyoutItem而改变。