【发布时间】:2022-12-23 19:28:50
【问题描述】:
我在一页上有这个:
await Shell.Current.GoToAsync(nameof(Pages.StartPage), true, new Dictionary<string, object>
{
{ "LoginData", result }
});
result 是一个对象/类
在我的Pages.StartPage 中,我想得到那个对象。我试过使用[QueryProperty...,但总是返回空值。例如。
[QueryProperty(nameof(GetLoginData), "LoginData")]
public partial class StartPage : ContentPage
...
private JsonApiResult GetLoginData { set { _loginData = value; } }
我刚开始使用 MAUI,我正在将应用程序从 Xamarin 转换为 MAUI。我构建的页面会自行处理,所以我不想使用 ViewModel,我只需要来自该传入对象的值,页面就可以完成它的工作。除非别无他法,否则我不想重写所有页面
任何帮助将非常感激。我看过很多关于这个的视频,但我无法让它工作,我错过了什么?
更新
我应该补充一点,让我自己的事情变得更复杂,我也在使用依赖注入(DI)
【问题讨论】:
-
尝试制作
GetLoginDatapublic。你在哪里/如何检查价值?它不会出现在构造函数中。 -
您的 Xamarin 项目是否使用 AppShell?如果不是,并且您想在 Maui 中保留相同的行为,则不要使用 Maui 的 AppShell。在
App.xaml.cs中,找到MainPage = new AppShell();。将其更改为 Xamarin 中的任何内容。底线:无论您在 Xamarin 中做什么,都应该可以在 Maui 中做类似的事情。 (自定义渲染器除外,它们已发生重大变化。) -
在 Xamarin 中,我做了这个
await Navigation.PushAsync(new Pages.StartPage(result), true);在 MAUI 中,我希望利用依赖注入。我显然做错了什么,因为我可以让一个或另一个工作,但不能同时工作,哈哈。 @Jason 公开它没有用:)