【问题标题】:Xamarin XAML: calling a Shell page with a parameterXamarin XAML:使用参数调用 Shell 页面
【发布时间】:2022-08-24 12:24:18
【问题描述】:

假设您有以下 AppShell.xaml:

<TabBar>
<ShellContent Title=\"Page1\" ContentTemplate=\"{DataTemplate local:Page1}\" />
<ShellContent Title=\"Page2\" ContentTemplate=\"{DataTemplate local:Page2}\">
</TabBar>

还假设 Page2 与 Page1 相同,除了一个属性,可以很容易地参数化。 所以我希望能够做到这一点:

<TabBar>
<ShellContent Title=\"Page1\" ContentTemplate=\"{DataTemplate local:Page1}\" />
<ShellContent Title=\"Page2\" ContentTemplate=\"{DataTemplate local:Page1}\" 
ContentTemplateParameter=\"somevalue\">
</TabBar>

问题是,没有ContentTemplateParameter 这样的东西。那么有没有办法实现这个功能呢?这里的关键部分是我需要从应用级标签栏调用它,而不是从一个页面到另一个页面。

附言请参阅下面的解决方案。

  • 我找到了解决方案,请参见下文。

标签: xaml xamarin xamarin.forms xamarin-shell


【解决方案1】:

回答我自己的问题;我想出了一个解决方案。

  1. 为其中一个链接分配一个路由名称:
    <TabBar>
    <ShellContent Title="Page1" ContentTemplate="{DataTemplate local:Page1}" />
    <ShellContent Title="Page2" ContentTemplate="{DataTemplate local:Page1}" 
    Route ="somevalue">
    </TabBar>
    
    1. 然后在 Page1 的构造函数中,您可以检查该名称是否在路由中:
    if(Shell.Current.CurrentItem.CurrentItem.Route.Contains("somevalue")) {
       // do something
    } else { 
       // do something else
    }
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多