gpt4 book ai didi

c# - INavigationService 作为 MainPage 构造函数参数

转载 作者:行者123 更新时间:2023-11-30 21:48:25 25 4
gpt4 key购买 nike

我有来自 Prism 模板的基本 Prism/Unity/Xamarin Forms 应用程序。

如果我更改以下(添加参数)它会失败

public MainPage(INavigationService navigationService)
{
InitializeComponent();
}

容器可以工作,但以这种方式获取导航服务会导致找不到 MainPage。

是否有更好的方法让 ContentPage 获取导航服务,以便单击按钮可以导航到新页面?

我还尝试从 OnInitialized 注册导航服务,正如我在一些示例中发现的那样,现在这是一个编译错误。

使用以下包/版本:

  • Prism.Unity.Forms 6.2.0.pre4
  • Prism.Forms 6.1.0.pre4
  • Xamarin.Forms 2.2.0.45
  • 统一 4.0.1
  • Windows 10 UWP

最佳答案

Prism 是一个框架,可帮助您使用 MVVM 创建应用程序.如果您仔细阅读 MVVM 和使用的实践,您会注意到页面中的代码应保持最少,并且逻辑已移至 View 模型。

将此应用于您的代码,您不应将 INavigationService 添加到您的页面,因为导航应从 View 模型完成。

现在我听到您在问:“但是我如何从点击转到 View 模型?”。这是通过使用命令完成的。

<Button Text="Navigate to speak page" Command="{Binding NavigateToSpeakPageCommand}" />

我建议您查看 Prism 存储库中的文档 和示例:

关于c# - INavigationService 作为 MainPage 构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37666988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com